嗨,我想在数据框中创建第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
答案 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