R:通过合并两个变量的内容来创建一个新变量

R: creating a new variable by merging the contents of two variables in

我有一个数据框 a,其中包含两个代表两种类型的人的变量。现在设置 df 的方式是,对于一个变量,当值不代表人 A 时存在 NA,而在第二个变量中存在值不代表人 b 的 NA。我想合并这两个变量,这样我就只有 1 个变量。

DF 看起来像这样:

Total <- rep(c(1, NA, NA, 5) , 1)
Total2 <-rep( c(NA, 8,9,NA), 1)
data <- data.frame(Total, Total2)

我想添加第三个变量,如下所示:

  Total <- rep(c(1, NA, NA, 5) , 1)
    Total2 <-rep( c(NA, 8,9,NA), 1)
   All_var = rep(c(1,8,9,5), 1)
   data <- data.frame(Total, Total2, All_var)

我试过了,但我得到了一个与 Total 具有相同值的新变量。

data$All_var=data$Total
data$All_var[is.na(data$Total)]=data$Total2[is.na(data$Total)]

谢谢。

在基础 R 中尝试:

data$newvar <- replace(data$Total, is.na(data$Total), data$Total2[is.na(data$Total)])

或使用 coalescedplyr:

library(dplyr)

data %>%
  mutate(newvar = coalesce(Total, Total2))