我有一个包含用户信息的数据集。对于特定用户,我通常有多行或多或少的完整信息。我想根据 First_Name、Last_Name、Street 汇总属于客户的所有行,同时保留其他列的所有信息,如果特定列有两个独特的观察,我想用“,”折叠它们。
这就是 df 的样子
First_Name Last_Name Street Column1 Colum2 Colum_n
Mike Smith X abc ab a
Mike Smith X abc ad b
John Smith Y xyz xy n
John Smith Y xyz xm NA
我想要的输出是
First_Name Last_Name Street Column1 Colum2 Colum_n
Mike Smith X abc ab,ad a,b
John Smith Y xyz xy,xm n
我想使用 dplyr 并尝试使用
df %>%
group_by(First_Name,Last_Name, Street) %>%
summarise_all(funs())
该函数的问题在于,我只能选择使用列的平均值或第一个出现的值之类的东西,这意味着值的丢失。我想要的是没有 NA 的所有唯一值的列
最佳答案
您可以编写自己的汇总函数,例如concat_unique <- function(x){paste(unique(x), collapse=',')}
然后使用它应用它summarize_all(concat_unique)
关于r - 基于多列组合行并保留所有唯一值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53781563/