如何对两个ffdf进行列绑定 [英] How to column bind two ffdf
本文介绍了如何对两个ffdf进行列绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设有两个ffdf
文件:
library(ff)
ff1 <- as.ffdf(data.frame(matrix(rnorm(10*10),ncol=10)))
ff2 <- ff1
colnames(ff2) <- 1:10
如何在不将它们加载到内存的情况下对它们进行列绑定? cbind
不起作用.
How can I column bind these without loading them into memory? cbind
doesn't work.
有相同的问题http://stackoverflow.com/questions/18355686/columnbind-ff-data-frames-in-r
,但没有MWE,作者放弃了,所以我重新发布了.
There is the same question http://stackoverflow.com/questions/18355686/columnbind-ff-data-frames-in-r
but it does not have an MWE and the author abandoned it so I reposted.
推荐答案
您可以使用以下构造cbind.ffdf2
,确保两个输入ffdf
的列名不重复:
You can use the following construct cbind.ffdf2
, making sure the column names of the two input ffdf
's are not duplicate:
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
这篇关于如何对两个ffdf进行列绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文