a_pick<-list()
b_pick<-list()
d_pick<-list()
for (s in 1:n) {
a_pick[]<-assemble[][,c(3,5)]
d_pick[]<-unique(a_pick[])
}
b_pick[[1]]<-merge(x=d_pick[[1]],y=d_pick[[2]],all=TRUE,by="createtime",sort = TRUE)
for (t in 2:147) {#累加合并
b_pick[[t]]<-merge(b_pick[[t-1]],d_pick[[t+1]],all=TRUE,by="createtime",sort=TRUE)
}
Error: cannot allocate vector of size 820 Kb
In addition: There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
警告信息:
1: In merge.data.frame(b_pick[[t - 1]], d_pick[[t + 1]], ... :
column names ‘value.x’, ‘value.y’ are duplicated in the result
2: In merge.data.frame(b_pick[[t - 1]], d_pick[[t + 1]], ... :
column names ‘value.x’, ‘value.y’ are duplicated in the result
3: In merge.data.frame(b_pick[[t - 1]], d_pick[[t + 1]], ... :
column names ‘value.x’, ‘value.y’, ‘value.x’, ‘value.y’ are duplicated in the result
4: In merge.data.frame(b_pick[[t - 1]], d_pick[[t + 1]], ... :
column names ‘value.x’, ‘value.y’, ‘value.x’, ‘value.y’ are duplicated in the result
5: In merge.data.frame(b_pick[[t - 1]], d_pick[[t + 1]], ... :
column names ‘value.x’, ‘value.y’, ‘value.x’, ‘value.y’, ‘value.x’, ‘value.y’ are duplicated in the result
6: In merge.data.frame(b_pick[[t - 1]], d_pick[[t + 1]], ... :
column names ‘value.x’, ‘value.y’, ‘value.x’, ‘value.y’, ‘value.x’, ‘value.y’ are duplicated in the result
我想简化一下,我这个for循环,或者最好不要使用for循环。
简单说一下,上面的代码是干什么:简单的说就是合并累加。有assemble是一个list,有148个元素。合并过程就是通过list[[1]]与list[[2]]中的列“createtime”名进行outer合并,得到b_pick[[1]],然后b_pick[[1]]与list[[3]]中根据“createtime”列名进行合并,依次类推,直到b_pick[[146]]与list[[148]]中根据“createtime”列进行合并,然后提取最后得到的这个结果。