我希望合并多个数据框(总共17个),这些数据框都有一个yyyy-mm的列,以及其他具有该月相应值的列。
数据框并非都在同一个月开始,它们的长度也不相同。
我希望将它们组合起来,以便在我的所有数据帧中表示yyyy-mm的每一个都在组合数据帧中表示,并在没有找到NA的值时填充行,因此不会跳过任何内容。
我该怎么做?
答案 0 :(得分:1)
这里有full_join
的tidyverse,但是重新学习的例子可以更好地理解你的问题。使用多个data.frames只需使用管道。
tbl_a <- tibble(
month = c("2017-01", "2017-02", "2017-03"),
value = c(1, 2, 3)
)
tbl_b <- tibble(
month = c("2017-01", "2017-03", "2017-04"),
value = c(5, 6, 7)
)
tbl_c <- tibble(
month = c("2017-01", "2017-06", "2017-07"),
value = c(8, 9, 10)
)
full_join(tbl_a, tbl_b, by="month") %>%
full_join(tbl_c, by="month")
# A tibble: 6 x 4
month value.x value.y value
<chr> <dbl> <dbl> <dbl>
1 2017-01 1 5 8
2 2017-02 2 NA NA
3 2017-03 3 6 NA
4 2017-04 NA 7 NA
5 2017-06 NA NA 9
6 2017-07 NA NA 10
答案 1 :(得分:0)
谢谢你们回复。修复它使用: reg_month_temp&lt; - 合并(ben_regsum,delta_regsum, by =&#34; year_month&#34;, all = TRUE )
然后一次向合并的数据框添加一个数据帧。
这很好用;通过使用all = TRUE,它保留了year_month的每个条目,并用NA填充其余条目。