在R中组合两个不同频率和不等长度的数据帧



我需要连接/合并两个频率和长度不同的数据帧df1df2。在这些数据帧中,日期对应于值(值1和值2(的更改日期。

数据帧为:

State <- c(A,A,A,B,B,B)
Date1 <- c(01/01/2015, 02/04/2015, 12/01/2016, 03/02/2015, 02/05/2015, 25/01/2016)
Date2 <- C(01/02/2013, 01/04/2015, 19/07/2013, 23/01/2016)
value1 <- c(2.5, 3.2, 2.7, 3.1, 3.6, 2.8)
value2 <- c(0.12, 0.25, 0.2, 0.3)
df1 <- data.frame(State, Date1, value1)
df2 <- data.frame(State, Date2, value2)

然后我们有:

State   Date1       Value1
A       01/01/2015  2.5 
A       02/04/2015  3.2
A       12/01/2016  2.7
B       03/02/2015  3.1
B       02/05/2015  3.6
B       25/01/2016  2.8
State   Date2       Value2
A       01/02/2013  0.12    
A       01/04/2015  0.25
B       19/07/2013  0.20
B       23/01/2016  0.30

我想加入/合并这两个数据帧,并将它们调整为相同的时间-频率(每天或每周(。理想的结果是,对于每日频率:

State   Date        Value1  Value2
A       01/02/2013  NA      0,12
A       02/02/2013  NA      0,12
(...)
A       01/01/2015  2,5     0,12
(...)
A       01/04/2015  2,5     0,25
A       02/04/2015  3,2     0,25
(...)
A       12/01/2016  2,7     0,25
(...)
B       19/07/2013  NA      0,20
(...)
B       03/02/2015  3,1     0,20
(...)
B       02/05/2015  3,6     0,20
(...)
B       23/01/2016  3,6     0,30
B       24/01/2016  3,6     0,30
B       25/01/2016  2,8     0,30

感谢您的帮助!

我稍微修改了您提供的样本,展示了如何使用dplyrfull_join实现我认为您想要的目标

library(dplyr)
State1 <- c("A","A","A","B","B","B")
State2 <- c("A","A","B","B")
Date1 <- c("01/01/2015", "01/04/2015", "12/01/2016", "03/02/2015", "02/05/2015", "25/01/2016")
Date2 <- c("01/02/2013", "01/04/2015", "19/07/2013", "23/01/2016")
value1 <- c(2.5, 3.2, 2.7, 3.1, 3.6, 2.8)
value2 <- c(0.12, 0.25, 0.2, 0.3)
df1 <- data.frame(state = State1, date = Date1, value = value1)
df2 <- data.frame(state = State2, date = Date2, value = value2)
full_join(df1, df2, by=c("state", "date"), suffix = c("1","2"))

将返回以下

state       date value1 value2
1     A 01/01/2015    2.5     NA
2     A 01/04/2015    3.2   0.25
3     A 12/01/2016    2.7     NA
4     B 03/02/2015    3.1     NA
5     B 02/05/2015    3.6     NA
6     B 25/01/2016    2.8     NA
7     A 01/02/2013     NA   0.12
8     B 19/07/2013     NA   0.20
9     B 23/01/2016     NA   0.30

我希望这对你有帮助。

最新更新