有没有一种方法可以将两个具有不同日期的序列left_join在一起,以便它们都出现?

时间:2020-04-19 13:27:05

标签: r dataframe date dplyr left-join

我感兴趣的是将日期不同的两个数据帧组合在一起,以便在第一个序列中,NA出现在没有条目的地方,类似地,在第二个序列中也会发生这种情况。

library(lubridate)
library(dplyr)

dates <- seq(as.Date("2019-01-01"),floor_date(Sys.Date(), "month"),"months")-1
seq <- rep(c(1),length(dates))
df1 <- cbind.data.frame(dates,seq)

dates <- seq(as.Date("2019-01-01"),floor_date(Sys.Date(), "month"),"months")-2
seq <- rep(c(2),length(dates))
df2 <- cbind.data.frame(dates,seq)

DF <- left_join(df1,df2,by="dates")

我得到的是DF的第三行是NA。所需的输出将是:

2018-12-31 1不适用

2018-12-30 NA 2

以此类推...

谢谢!

1 个答案:

答案 0 :(得分:0)

您可能正在寻找full_join

library(dplyr)
full_join(df1,df2, by="dates") %>% arrange(dates)

#        dates seq.x seq.y
#1  2018-12-30    NA     2
#2  2018-12-31     1    NA
#3  2019-01-30    NA     2
#4  2019-01-31     1    NA
#5  2019-02-27    NA     2
#6  2019-02-28     1    NA
#...
#...