我有一个数据框列表。我想在列名上垂直合并它们。
我的列表中有三个数据框,例如:
Precinct VoterTurnout Johnson Jameson
4030 45 20 25
这一个......
Precinct VoterTurnout Jimson
1234 33 20
第三......
Precinct VoterTurnout Jhohnshohn
4321 555 222
这些数据框位于名为listDFs
的列表中。如何合并它们看起来像这样?
Precinct VoterTurnout Johnson Jameson Jimson Jhohnshohn
4030 45 20 25 NA NA
1234 33 NA NA 20 NA
4321 555 NA NA NA 222
答案 0 :(得分:0)
使用tidyverse
个包,您可以使用Reduce
和full_join()
来完成它:
首先,让我们创建“子表”作为元素:
library(tidyverse)
a <- tribble(
~Precinct, ~VoterTurnout, ~Johnson,
4030, 45, 20
)
b <- tribble(
~Precinct, ~VoterTurnout, ~Jimson,
1234, 33, 20
)
c <- tribble(
~Precinct, ~VoterTurnout, ~Jhohnshohn,
4321, 555, 222
)
现在我们有了表 a , b 和 c ,我们可以用Reduce
递归地加入列表:
ll <- list(a,b,c)
ll %>%
reduce(full_join)
请注意,当您使用full_jo时,NA会出现在应有的位置。
让我们检查结果:
# A tibble: 3 × 5
Precinct VoterTurnout Johnson Jimson Jhohnshohn
<dbl> <dbl> <dbl> <dbl> <dbl>
1 4030 45 20 NA NA
2 1234 33 NA 20 NA
3 4321 555 NA NA 222