【发布时间】:2015-05-22 12:04:48
【问题描述】:
这是一个玩具示例(merge 来自基本包,完整来自 dplyr):
require(dplyr)
a = data.frame(Day=Sys.Date()+1:5,x=1:5)
b = data.frame(Day=Sys.Date()-1:5,x=3*(1:5))
x1 = b
x2 = b
for(i in 1:10){
x1=full_join(x1,a,by="Day")
x2 = merge(x2,a,by="Day",all=T)
}
x1 和 x2 不同。我希望 x2 因为“a”附加到末尾。 这是 x2(前 5 行):
2015-05-14 15 NA NA NA NA NA NA NA NA NA NA
2015-05-15 12 NA NA NA NA NA NA NA NA NA NA
2015-05-16 9 NA NA NA NA NA NA NA NA NA NA
2015-05-17 6 NA NA NA NA NA NA NA NA NA NA
但是来自 full_join 的 x1 是:
Day x.x x.y x.x x.y x.x x.y x.x x.y x.x x.y x
1 2015-05-18 3 NA 3 NA 3 NA 3 NA 3 NA NA
2 2015-05-17 6 NA 6 NA 6 NA 6 NA 6 NA NA
3 2015-05-16 9 NA 9 NA 9 NA 9 NA 9 NA NA
这是一个错误吗?或者这是预期的?我希望合并(x2)的输出在逻辑上是正确的......我想要使用 dplyr full_join 的 x2。有什么办法吗?
【问题讨论】:
-
您的
for循环没有要循环的i。你想循环浏览哪 10 个项目? -
i 不相关。我只是想创建一个简单的例子,按顺序合并几个data.frames。在这种情况下,我将相同的 data.frame "a" 合并到 x1(或 x2)的右侧。