加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

r – 如何列绑定两个ffdf

发布时间:2020-12-14 04:29:55 所属栏目:大数据 来源:网络整理
导读:假设有两个ffdf文件: library(ff)ff1 - as.ffdf(data.frame(matrix(rnorm(10*10),ncol=10)))ff2 - ff1colnames(ff2) - 1:10 如何在不将它们加载到内存中的情况下对列进行绑定? cbind不起作用. 有一个相同的问题https://stackoverflow.com/questions/183556
假设有两个ffdf文件:

library(ff)
ff1 <- as.ffdf(data.frame(matrix(rnorm(10*10),ncol=10)))
ff2 <- ff1
colnames(ff2) <- 1:10

如何在不将它们加载到内存中的情况下对列进行绑定? cbind不起作用.

有一个相同的问题https://stackoverflow.com/questions/18355686/columnbind-ff-data-frames-in-r但它没有MWE,作者放弃了它,所以我重新发布.

解决方法

您可以使用以下构造cbind.ffdf2,确保两个输入ffdf的列名不重复:

library(ff)
ff1 <- as.ffdf(data.frame(letA = letters[1:5],numA = 1:5))
ff2 <- as.ffdf(data.frame(letB = letters[6:10],numB = 6:10))

cbind.ffdf2 <- function(d1,d2){
  D1names <- colnames(d1)
  D2names <- colnames(d2)
  mergeCall <- do.call("ffdf",c(physical(d1),physical(d2)))
  colnames(mergeCall) <- c(D1names,D2names)
  mergeCall
}

cbind.ffdf2(ff1,ff2)[,]

结果:

letA numA letB numB
1   a    1    f     6
2   b    2    g     7
3   c    3    h     8
4   d    4    i     9
5   e    5    j    10

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读