我正在制作一些自由文本,因为我需要做一些数据清理,我有一个问题(很多,我稍后会问,我肯定):
我需要更换以下组合:
[ ; ] (标点符号前后的空格)
[;] (标点符号前后没有空格)
[ ;] (标点符号前只有空格)
至
[; ] (标点符号后面只有空格)
...标点符号可以是其中之一[;:,.].我怎么能用正则表达式做到这一点?
我正在探索如何更有效地比较R中的两个数据帧,我想出了哈希.
我的计划是使用digestin digestpackage 为两个具有相同列的数据帧中的每一行数据创建哈希,并且我认为对于任何2个相同的数据行,哈希应该是相同的.
我尝试使用以下代码为每行数据提供唯一的哈希值:
for (loop.ssi in (1:nrow(ssi.10q3.v1)))
{ssi.10q3.v1[loop.ssi,"hash"] <- digest(as.character(ssi.10q3.v1[loop.ssi,]))
print(paste(loop.ssi,nrow(ssi.10q3.v1),sep="/"))
flush.console()
}
Run Code Online (Sandbox Code Playgroud)
但这很慢.
我在比较数据帧时的方法是否正确?如果是,是否有任何关于加快上述代码的建议?谢谢.
UPDATE
我已经更新了以下代码:
ssi.10q3.v1[,"uid"] <- 1:nrow(ssi.10q3.v1)
ssi.10q3.v1.hash <- ddply(ssi.10q3.v1,
c("uid"),
function(df)
{df[,"uid"]<- NULL
hash <- digest(as.character(df))
data.frame(hash=hash)
},
.progress="text")
Run Code Online (Sandbox Code Playgroud)
我uid为"独特"目的自行生成了一个专栏.
可能重复:
如何在R中进行"漂亮的舍入"?
比方说1.036315,我有一个数字,我希望将其舍入到第一个小数位,这样结果就是1.0,这不应该是1,因为我还想说明近似值精确到小数点后第一位.
但是当我使用时round(1.036315, digits=1),R给了我1,这是我不想要的.
让R呈现我想要的东西的任何方式?
作为R用户,我现在正在尝试学习SPSS语法。
我s rm(list=ls())在R脚本的存在处添加命令,以确保在我继续工作之前R为空。
SPSS是否有类似的命令?谢谢。
我已经使用R了很多,我知道我可以使用head(data[,"column"])或head(data)来查看数据的前几行/单元格。
如何在Stata中做到这一点?
我有一个日期格式如下,我使用R将其从字符串转换为日期
date <- "20 Nov 2010 21:44:00:000"
strptime(date,"%d %b %Y %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)
我想在Stata做,但是怎么样?我在Stata试过这个:
gen time_2 = date(time,"DMYhms#")
Run Code Online (Sandbox Code Playgroud)
但这不行,为什么呢?谢谢.
我有一个由R捕获的文件名,如下所示:
"0097_abcdef/0097_0/0097_0_04_bed.dbf"
Run Code Online (Sandbox Code Playgroud)
我需要在两个斜线/(即0097_0)之间选择一个术语,但我已经尝试过gsub(".*/","",dbf.files[1]),但它给了我"0097_0_04_bed.dbf",这不是我想要的.
有人可以帮忙吗?谢谢.
我从这里和这里问过同样的问题,但仍然无法解决我的问题.我想我需要提出整个问题并寻求帮助,而不是将其分解成小部分.
我有一个数据框,我将其导出到csv,可以在http://pastebin.com/SNT9Ykt7找到.
chart <- ggplot(data=map.shp,aes(x=long,y=lat))
### PART1 START ###
chart <- chart + geom_polygon(data=map.shp,aes(x=long,y=lat,group=id),colour=rgb(162,159,140,maxColorValue=255),fill=rgb(233,235,232,maxColorValue=255),size=0.1)
### PART1 END ###
### PART2 START ###
map.group <- unique(map.shp[,"group"])
for (loop in (1:length(map.group))) {
temp.shp <- map.shp[map.shp[,"group"]==map.group[loop],]
temp.colour <- "red"
if (unique(temp.shp[,"hole"])=="TRUE") {
temp.colour <- "blue"
}
chart <- chart + geom_polygon(data=temp.shp,aes(x=long,y=lat,group=id,order=group),colour=rgb(162,159,140,maxColorValue=255),fill=temp.colour,size=0.1)
}
### PART2 END ###
chart <- chart + opts(panel.background=theme_rect(colour=rgb(190,225,247,maxColorValue=255),fill=rgb(190,225,247,maxColorValue=255)),
panel.grid.major=theme_blank(),
panel.grid.minor=theme_blank(),
panel.border=theme_blank(),
plot.background = theme_blank(),
axis.line=theme_blank(),
axis.text.x=theme_blank(),
axis.title.x=theme_blank(),
axis.text.y=theme_blank(),
axis.title.y=theme_blank(),
axis.ticks=theme_blank())
chart <- chart + …Run Code Online (Sandbox Code Playgroud) 我现在正在进行2次R会话,每次会话中都有一个向量,但内部略有不同,请说:
会话1: temp1 <- c(1:10)
会议2: temp2 <- c(2:11)
我想将temp1session1从session1 复制到session2并执行%in%,但我不想print(temp1)在session1中使用ctrl-c它,手动修改输出然后ctrl-v在session2中.
我见过有人使用在R会话中创建输出的泛型函数,然后我ctrl-c直接输出ctrl-v它在另一个R会话中,并且该对象已经存在.但我不记得这个功能了.
谢谢.
我正在尝试创建一个“订单”堆积条形图,每个堆栈由一个变量着色并由另一个变量排序,请找到我的示例如下:
library(ggplot2)
library(dplyr)
data(iris)
chart.df.st00 <- iris %>%
as_tibble %>%
mutate(`Sepal.Length`=round(`Sepal.Length`)) %>%
count(Species,`Sepal.Length`) %>%
mutate(`Sepal.Length`=as.character(`Sepal.Length`)) %>%
group_by(Species) %>%
mutate(percent=n/sum(n)*100) %>%
arrange(desc(n)) %>%
mutate(rank=1:n()) %>%
ungroup %>%
mutate(rank=paste(Species,rank,sep='-'))
chart.df.st01 <- chart.df.st00 %>%
left_join(chart.df.st00 %>%
distinct(`Sepal.Length`) %>%
mutate(color=colorRampPalette(
RColorBrewer::brewer.pal(length(unique(chart.df.st00$`Sepal.Length`)),'Set1'))(length(unique(chart.df.st00$`Sepal.Length`)))))
chart.color1.st00 <- chart.df.st01 %>%
distinct(rank,color) %>%
arrange(rank)
chart.color1.st01 <- chart.color1.st00$color
names(chart.color1.st01) <- chart.color1.st00$rank
chart1 <- ggplot(data=chart.df.st01,
aes(x=1,y=percent)) +
geom_bar(aes(fill=rank),stat='identity') +
scale_fill_manual(values=chart.color1.st01) +
facet_wrap(.~Species,ncol = 1) +
scale_y_reverse(breaks=c(0,25,50,75,100),labels=c(100,75,50,25,0)) +
coord_flip()
chart.color2.st00 <- chart.df.st01 %>%
distinct(color,Sepal.Length) %>%
arrange(Sepal.Length)
chart.color2.st01 <- chart.color2.st00$color
names(chart.color2.st01) <- chart.color2.st00$`Sepal.Length`
chart2 …Run Code Online (Sandbox Code Playgroud)