将多列合并为一列

Art*_*uro 1 r coalesce dataframe dplyr

如果我发布了一个与我之前问过的问题类似的问题,我深表歉意,但我意识到我原来的问题不是很清楚。

我有一个包含 5 列和 6 行的数据框(实际上它们更多,只是为了简化问题):

One Two Three   Four    Five
Cat NA  NA  NA  NA
NA  Dog NA  NA  NA
NA  NA  NA  Mouse   NA
Cat NA  Rat NA  NA
Horse   NA  NA  NA  NA
NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)

现在,我想将所有信息合并到一个新的单列(“摘要”)中,如下所示:

Summary
Cat
Dog
Mouse
Error
Horse
NA
Run Code Online (Sandbox Code Playgroud)

请注意第四个汇总行报告的“错误”,因为合并期间报告了两个不同的值。另外请注意,如果一行中只有 NA,则应报告“NA”而不是“错误”我试图查看 dplyr 包中的 'coalesce' 函数,但它似乎真的没有做我需要的。提前致谢。

tmf*_*mnk 7

一种base R选择可能是:

ifelse(rowSums(!is.na(df)) > 1, "Error", do.call(pmin, c(df, na.rm = TRUE))) 

[1] "Cat"   "Dog"   "Mouse" "Error" "Horse" NA 
Run Code Online (Sandbox Code Playgroud)