如何在R中对因子进行求和?

Clo*_*t X 2 variables r dplyr data-cleaning tidyverse

我有这样的数据:

df <- data.frame(id = c("001", "002", "003", "004"),
                 banana = c("banana", NA, NA, NA),
                 apple = c(NA, "apple", "apple", NA),
                 orange = c("orange", NA, NA, NA),
                 mango = c(NA, NA, NA, "mango"))

 id banana apple orange mango
001 banana    NA orange    NA
002     NA apple     NA    NA
003     NA apple     NA    NA
004     NA    NA     NA mango
Run Code Online (Sandbox Code Playgroud)

我想flavor通过以下方式将变量合并为一个变量:

 id banana apple orange mango flavor
001 banana    NA orange    NA  mixed
002     NA apple     NA    NA  apple
003     NA apple     NA    NA  apple
004     NA    NA     NA mango  mango
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?尽管通用的解决方案会很棒,但任何帮助都会受到赞赏dplyr

编辑:我需要一个强大的解决方案来在我的数据框中包含其他列。

zx8*_*754 5

检查唯一计数是否大于 1:

df$flavor <- apply(df[-1], 1, function(i)
                   ifelse(length(unique(na.omit(i))) > 1, "mixed", unique(na.omit(i))))

df$flavor
# [1] "mixed" "apple" "apple" "mango"
Run Code Online (Sandbox Code Playgroud)