【发布时间】:2015-09-01 19:31:47
【问题描述】:
我有一个如下数据集,我的目标是按日期对每个数据帧(df1、df2 和 df3)进行 cbind:
df1
Date COL1
2015-05-27 5
2015-05-28 7
2015-05-29 8
2015-05-30 7
2015-05-31 4
2015-06-01 8
df2
Date COL2
2015-05-28 6
2015-05-29 9
2015-05-30 10
2015-05-31 11
2015-06-01 12
df3
Date COL3
2015-01-01 12
2015-01-02 8
.
.
.
.
2015-06-01 20
我想将这些 cbind 绑定到日期。常规 cbind 不起作用,因为它具有不同的行数。当我执行 cbind.fill 时,即使我使用 all.x=TRUE,NA 也会超出数据框
所以最终结果应该是这样的:
Date COL3 COL2 COL1
2015-01-01 12 NA NA
2015-01-02 8 NA NA
. . . .
. . . .
. . . .
. . . .
2015-05-31 12 11 4
2015-06-01 20 12 8
任何帮助都会很棒,谢谢!
【问题讨论】:
-
这里的逻辑是什么?你只是想把
NA移到底部? -
他好像是想按照
Date2来排列Date2和Col2,不过我这里估计有点。 @OP,你到底是什么意思?另外,请让您的示例可重现,以获取提示see here。 -
merge(df[,1:2],df[,3:4],by.x="Date",by.y="Date2",all=TRUE) -
这里请注意:根据事实上的标准,数据框通常应该在每一行中具有 [独立] 观察值,在每列中具有变量。通过做你想做的事,你会把观察结果弄乱。如果它们代表不同的事物,我建议您将它们放入不同的数据框 (
df1<-df[,1:2]; df2<-df[,3:4])。当然,我可能是错的,你可以有一个非常明确的理由让他们像你一样...... -
您需要
merge,而不是cbind,并且您需要使用mget和ls组合将这些数据框放入一个列表中。见here如果从那里怎么取