用两种非NA值合并2列的简单方法

时间:2017-09-12 12:53:51

标签: r dataframe

如何将其合并为1列?

df <- data.frame(a = c("1", "2", NA, NA), b = c(NA, NA, "3", "4"), c = c(NA, "5", "6", NA), stringsAsFactors = F)

我只想将b中的所有值变为无NA的值。所以a应该是:&#34; 1&#34;,&#34; 2&#34;,&#34; 3&#34;,&#34; 4&#34;。 (现在需要在df中选择超过2的列)

这效果不好: df$a <- df$b[!is.na(df$b)]

1 个答案:

答案 0 :(得分:0)

我们可以使用pmax

df$a <- do.call(pmax, c(df, na.rm = TRUE))

coalesce

library(dplyr)
df %>%
   mutate(a = coalesce(a,b))
#  a    b
#1 1 <NA>
#2 2 <NA>
#3 3    3
#4 4    4