2

次の 2 つのffdfファイルがあるとします。

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

これらをメモリにロードせずに列をバインドするにはどうすればよいですか? cbind動作しません。

同じ質問http://stackoverflow.com/questions/18355686/columnbind-ff-data-frames-in-rがありますが、MWEがなく、作者が断念したので再投稿しました。

4

2 に答える 2

3

次の構文を使用してcbind.ffdf2、2 つの入力の列名が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
于 2014-03-07T10:57:37.193 に答える