【发布时间】:2014-04-04 21:59:27
【问题描述】:
我需要保存在列表中的 ffdf 数据帧的外连接。已检查this,但它指的是不同的问题。 RAM 对象的示例代码:
x1 = data.frame(name='a1', Ai=2, Ac=1, Bi=1)
x2 = data.frame(name='a2', Ai=1, Bi=3, Bc=1, Ci=1)
x3 = data.frame(name='a3', Ai=3, Ac=2, Bi=2, Ci=3, Cc=1, Di=2, Dc=2)
x4 = data.frame(name='a4', Ai=3, Bi=2, Ci=1, Fi=2)
dl = list(x1,x2,x3,x4)
mergedDF = Reduce(function(...) merge(..., all=T), dl)
mergedDF[is.na(merged.data.frame)] = 0
想要的结果如下:
mergedDF
name Ai Bi Ci Ac Bc Cc Di Dc Fi
1 a1 2 1 0 1 0 0 0 0 0
2 a2 1 3 1 0 1 0 0 0 0
3 a3 3 2 3 2 0 1 2 2 0
4 a4 3 2 1 0 0 0 0 0 2
不过,只要我将数据帧转换为 ffdf,就会出现错误
Error in merge.ffdf(..., all = T) : merge.ffdf only allows inner joins
任何已知的解决方法?非常感谢。
【问题讨论】:
-
如果我正确理解您的问题。 ffbase 的开发版本包含一个名为
ffdfrbind.fill的函数(类似于rbind.fill)。library(devtools); install_github("edwindj/ffbase", subdir="pkg")将安装该开发版本。通常 ffdfrbind.fill(x1, x2, x3, x4) 会让你到达那里。 -
rbind.fill 功能确实是需要的。不幸的是,当我尝试
install_github("edwindj/ffbase", subdir="pkg")时出现此错误:ERROR: compilation failed for package 'ffbase' -
我相信你在 windows 上工作。如果你想像 install_github 一样从源代码安装包,你需要安装 Rtools。你有安装 Rtools 吗? cran.r-project.org/bin/windows/Rtools
-
Warning message: package ‘Rtools’ is not available (for R version 3.0.2) -
Rtools 在你的路径中。也许您需要在计算机进入您的路径之前重新启动它?