合并数据帧多次覆盖NAs导致先前的合并

时间:2016-05-25 12:21:13

标签: r merge

我正在创建一个表格,我有一个共同的日期,但每次迭代都会添加一列。 出来的表应该是

date       col1 col2 col3 col4
2016-01-01  1    2   3    4
2016-01-02  11   22  33   44

我得到的信息分为4部分

INPUT1

date       col1   col2
2016-01-01 1      2

输入2

date       col1   col2
2016-01-02 11      22

输入3

date       col3   col4
2016-01-01 3      4

INPUT4

date       col1   col2
2016-01-02 33      44

这是我写的代码,但它没有达到预期的结果 而是仅合并第一行,而第二行在合并的单元格中具有NA。 注意:我将结束的列数未知。这只是每次添加2列的示例。

res=data.frame()
r1= c("2016-01-01",1,2)
names(r1)=c("date","col1","col2")
res=rbind(r1)
#print(res)
r1= c("2016-02-01",11,22)
names(r1)=c("date","col1","col2")
r1_df=data.frame(as.list(r1))
res=merge(res,r1_df,all=T)

r1= c("2016-01-01",3,4)
names(r1)=c("date","col3","col4")
r1_df=data.frame(as.list(r1))
res=merge(res,r1_df,all=T)
r1= c("2016-02-01",33,44)
names(r1)=c("date","col3","col4")
r1_df=data.frame(as.list(r1))
res=merge(res,r1_df,all=T)
print(res)

    date col3 col4 col1 col2
  1 2016-01-01    3    4    1    2
  2 2016-02-01   33   44 <NA> <NA>
  3 2016-02-01 <NA> <NA>   11   22
  

由于

1 个答案:

答案 0 :(得分:0)

input1 <- data.frame(date=c("2016-01-01"),col1=1,col2=2,stringsAsFactors = F)
input2 <- data.frame(date=c("2016-01-02"),col1=11,col2=22,stringsAsFactors = F)
input3 <- data.frame(date=c("2016-01-01"),col3=3,col4=4,stringsAsFactors = F)
input4 <- data.frame(date=c("2016-01-02"),col3=33,col4=44,stringsAsFactors = F)

input <-merge(input1,input2,all.x = T,all.y = T)
input0<-merge(input3,input4,all.x = T,all.y = T)
input123 <- merge(input,input0,all.x=T)
print(input123)
        date col1 col2 col3 col4
1 2016-01-01    1    2    3    4
2 2016-01-02   11   22   33   44