根据 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 = ","))
我想根据 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 = ","))