全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2023 3
2018-07-02



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”列进行合并,然后提取最后得到的这个结果。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-7-2 18:12:02
怎么会变成这样?好奇怪,但是不影响阅读,拜托各位了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-7-2 18:33:55
第一个for 用 map
第二个for 用purrr::reduce试试。。
merge  用dlyr::full_join 代替会更好些  
行不行,多试试才知,才知如何再量身制定。。
  
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-7-2 19:53:14
thanks for sharing the code
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群