如何将行从另一个数据框添加到另一个但仅选定的列

时间:2019-03-06 08:04:12

标签: r

如何将数据框中特定列的行添加到另一个数据框中的另一列。请参见下面的示例。

> DF1
  A    B  C
1 3  axe aa
2 6 base bb
3 9  lol cc

> DF2
  D  E   
1 x ss 
2 y dd 
3 z vv 

我想将DF2的E列的行添加/合并到DF1的C列。其他列的行应为NA。

> DF3
  A    B   C
1 3   axe  aa
2 6   base bb
3 9   lol  cc
4 NA  NA   ss
5 NA  NA   dd
6 NA  NA   vv

2 个答案:

答案 0 :(得分:1)

您可以将E重命名为C和rbind。我更喜欢bind_rows

> library(dplyr)
> names(DF2)[2] <- "C"
> DF1 <- bind_rows(DF1, select(DF2, C))
> DF1
   A    B  C
1  3  axe aa
2  6 base bb
3  9  lol cc
4 NA <NA> ss
5 NA <NA> dd
6 NA <NA> vv

另一种方法:

> DF1 %>%
+   bind_rows(DF2) %>%
+   mutate(C = ifelse(is.na(C), E, C)) %>%
+   select(A:C)
   A    B  C
1  3  axe aa
2  6 base bb
3  9  lol cc
4 NA <NA> ss
5 NA <NA> dd
6 NA <NA> vv

答案 1 :(得分:0)

使用基于R的rbind

DF3 <- rbind(DF1, data.frame(A = NA, B = NA, C = DF2$E))