创建新列以连接数据框中的2个现有列

时间:2019-03-26 09:03:37

标签: r

嗨,我想在数据框中创建第3列,该列将同一数据框中的2个现有列合并在一起。

例如,我有A列和B列,它们在某些行上为空。我想创建一个新的列C,它将A和B中的值组合在一起,以便摆脱空值。

> A <- c('Tall', '', '', 'small')
> B <- c('','mid','medium','' )
> AB <-data.frame(A,B)
> AB
      A      B
1  Tall       
2          mid
3       medium
4 small       

我需要创建C列,在其中填充行中具有A或B值的行

> AB
      A      B      C
1  Tall          Tall
2          mid    mid
3       medium medium
4 small         small

1 个答案:

答案 0 :(得分:1)

您可以使用apply并删除所有不适用。

AB$C <- apply(AB, 1, function(x) {
  paste(setdiff(x, NA), collapse = "")
})
AB
      A      B      C
1  Tall          Tall
2          mid    mid
3       medium medium
4 small         small

或使用tidyr::unite

library(dplyr)
library(tidyr)
AB %>%
  unite(C, c(A, B), sep = "", remove = FALSE)
       C     A      B
1   Tall  Tall       
2    mid          mid
3 medium       medium
4  small small  

如果您不希望原始的A和B列,请使用remove = TRUE

相关问题