根据 R 中另一个值的频率,在一列中组合多个行值

Combining multiple rows values in one column, based on frequency of another value in R

我想根据 A 列中变量的频率对大型数据集进行子集化。B 列中的变量将消失,因为我没有在子集中使用它们。但是,我想保留这些,以在 A 列中添加一些关于变量频率的附加信息。

数据示例

A   B
A1  2001 
A1  2005
A1  2010
B2  2001
B3  2005
B3  2010

想要的结果:

A  Freq  B
A1  3    2001, 2005, 2010
B2  1    2001
B3  2    2005, 2010

我使用 table 函数生成频率 table,但我不知道如何添加由某些分隔符分隔的年份列。

你可以使用 dplyr 来做这个:

df <- data.frame(
  A= c("A1", "A1", "B2", "B3", "B3"),
  B = c(2001,2005,2010,2001,2005)
)

library(dplyr)

df %>% group_by(A) %>% 
  summarise(count = n(), year = paste(B, collapse = ","))