按列中的特定值绑定列

时间:2017-11-21 12:54:11

标签: r data-binding

我希望合并多个数据框(总共17个),这些数据框都有一个yyyy-mm的列,以及其他具有该月相应值的列。

数据框并非都在同一个月开始,它们的长度也不相同。

我希望将它们组合起来,以便在我的所有数据帧中表示yyyy-mm的每一个都在组合数据帧中表示,并在没有找到NA的值时填充行,因此不会跳过任何内容。

我该怎么做?

2 个答案:

答案 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填充其余条目。