R按组合并两个数据帧

时间:2018-10-24 16:47:13

标签: r merge

我的两个样本数据帧是:

dt1 <- data.frame(   
name = c(rep('c',3), rep('b', 2)),   
status = c('1','3','8','9','7'),   
date = c('10-01','10-03','10-04','10-02','10-05')
)

dt2 <- data.frame(date = c('10-01','10-02','10-03','10-04','10-05'))

我想基于dt1列合并dt2date。也就是说,我希望我的结果数据帧dt3为:

name    statue    date   
 c        1       10-01  
 c        NA      10-02  
 c        3       10-03  
 c        8       10-04  
 c        NA      10-05
 b        NA      10-01  
 b        9       10-02  
 b        NA      10-03  
 b        NA      10-04  
 b        7       10-05

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:3)

我们可以使用complete

library(tidyverse)
complete(dt1, name, date = dt2$date)

此处'dt1'和'dt2'中的'date'列具有相同的unique元素。如果不同,并且想使用“ dt2”中的“ date”,则上述方法效果很好。或者也可以从单个数据集完成

complete(df1, name, date)