按组排序和连接值

Sort and concatenate values by group

我有一个组和名称列表,如下面的 DF 所示。我希望按字母顺序排列此列表,并将每个名称连接起来,用逗号分隔,如下面的 DF2 所示。我以为这会很简单,但事实证明它比预期的更具挑战性!

DF <- tibble::data_frame(
    Group = c(1, 1, 1, 2, 2, 3, 3, 3), 
    Name = c("A", "B", "C", "B", "A", "B", "C", "A"))

DF2 <- tibble::data_frame(
    Group = c(1, 2, 3), 
    Name = c("A, B, C", "A, B", "A, B, C"))

对于解决此问题的任何帮助,我将不胜感激,以解决每个组列出的未知数量的名称,无论是否使用 dplyr 管道。

谢谢!

我们可以使用data.table

library(data.table)
setDT(DF)[order(Name), .(Comb = toString(Name)) , by = Group]

在基数 R 中:

aggregate(Name~Group, DF, function(x) paste0(sort(x), collapse = ","))

#  Group  Name
#1     1 A,B,C
#2     2   A,B
#3     3 A,B,C