如何使用多个其他列中的所有非 NA 值创建新列?

Ann*_*øll 2 if-statement r conditional-statements dataframe na

我想创建一个列 d,其中包含其他列中的所有非 NA 值。

我尝试了 ifelse,但无法弄清楚如何使其以正确的方式嵌套,以便也包含 c 列中的值。也许应该使用 ifelse 之外的其他内容?

这是一个“虚拟”数据框:

 a <- c(NA, NA, NA, "A", "B", "A", NA, NA)
 b <- c("D", "A", "C", NA, NA, NA, NA, NA)
 c <- c(NA, NA, NA, NA, NA, NA, "C", NA)
 data <- data.frame(a, b, c)
Run Code Online (Sandbox Code Playgroud)

我希望 d 列看起来像这样:

 data$d <- c("D", "A", "C", "A", "B", "A", "C", NA)
 View(data)
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

我们可以用pmax

do.call(pmax, c(data, list(na.rm=TRUE)))
#[1] "D" "A" "C" "A" "B" "A" "C" NA 
Run Code Online (Sandbox Code Playgroud)

数据

data <- data.frame(a, b, c, stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)