【发布时间】:2017-11-12 11:30:41
【问题描述】:
我想加入基于Time 的所有三个文件。如果数据框没有该特定日期的值,我想添加 NA。总共应该有 7 列的输出。
> head(Dax1,3)
Time Res Accum
1 2017-10-20 1174.60 172278.21
2 2017-10-18 -109.41 171103.61
3 2017-08-28 -2670.84 171213.02
> head(Dax2,3)
Time Res Accum
1 2017-10-23 1473.25 185076.53
2 2017-08-24 1001.50 183603.28
3 2017-07-31 -144.96 182601.79
> head(Dax3,3)
Time Res Accum
1 2017-11-07 -348.37 189 023.90
2 2017-10-26 398.16 189 372.27
3 2017-10-25 -80.19 188 974.10
我尝试了join_all,但它似乎以长格式连接它们。我希望它们并排共 7 列:
> join_all(list, by = "Time",match = "all",type="full")
Time Res Accum
1 2017-10-20 1174.60 172278.21
2 2017-10-18 -109.41 171103.61
3 2017-08-28 -2670.84 171213.02
4 2017-10-23 1473.25 185076.53
5 2017-08-24 1001.50 183603.28
6 2017-07-31 -144.96 182601.79
7 2017-11-07 -348.37 189 023.90
8 2017-10-26 398.16 189 372.27
9 2017-10-25 -80.19 188 974.10
【问题讨论】:
-
rbind(Dax1, Dax2, Dax3)事后你可能会想办法 -
@G5W Probaby
cbind你的意思是? -
cbind 创建 3 个输出行。输入中有更多唯一日期。
-
尝试创建唯一的列名,即
plyr::join_all(Map(function(x,y) {names(x)[-1] <- paste0(names(x)[-1], y); x}, lst, seq_along(lst)), by = "Time",match = "all",type="full") -
@akrun 你是对的。我误读了这个问题。但是 cbind 也不起作用。