将多列合并为一列

问题描述 投票:0回答:1

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

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

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

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

摘要猫狗鼠错误马NA

请注意在“摘要”第四行报告的“错误”,因为在合并过程中报告了两个不同的值。我试图查看dplyr软件包中的'coalesce'函数,但是它似乎并没有满足我的需要。预先感谢。

r dataframe dplyr coalesce
1个回答
1
投票

我们可以使用coalesce中的dplyr

library(dplyr)
df1 %>%
   mutate_if(~ all(is.na(.)) && is.logical(.), ~ NA_character_) %>%
   transmute(Summary  = coalesce(!!! .))
© www.soinside.com 2019 - 2024. All rights reserved.