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。
编辑:我需要一个强大的解决方案来在我的数据框中包含其他列。
检查唯一计数是否大于 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)