基于多列唯一组合统计列值出现次数(R语言实现)
R语言统计姓名在日期与条件组合下的出现次数
我们可以通过分组统计的方式实现需求,以下是基于你提供的模拟数据的具体处理方案:
1. 模拟数据集生成代码
set.seed(1) start_date <- as.Date('2015-01-01') end_date <- as.Date('2015-01-05') date_vec=as.Date(sample( as.numeric(start_date): as.numeric(end_date), 30, replace = T), origin = '1970-01-01') people=c("Sam","Jim","Sally","Robert","Donnie") Condition=sample(1:2,30, replace = "TRUE") people_column=sample(people,30, replace = "TRUE") sample_df=data.frame(people_column,Condition,date_vec)
2. 统计方法
方法一:使用dplyr包(简洁直观)
先安装并加载dplyr包(首次使用时运行安装代码):
# 安装包(首次使用时执行) # install.packages("dplyr") library(dplyr) # 分组统计各组合出现次数 count_df <- sample_df %>% group_by(people_column, Condition, date_vec) %>% summarise(出现次数 = n(), .groups = "drop") # 查看统计结果 print(count_df)
方法二:使用base R(无需额外安装包)
# 基于姓名、条件、日期分组统计 count_df_base <- aggregate( x = list(出现次数 = sample_df$people_column), by = list(姓名 = sample_df$people_column, 条件 = sample_df$Condition, 日期 = sample_df$date_vec), FUN = length ) # 查看统计结果 print(count_df_base)
3. 结果说明
两种方法都会生成包含姓名、条件、日期、出现次数的统计表格,完整展示每一组唯一组合的出现频次,示例输出如下:
# dplyr方法输出示例 # people_column Condition date_vec 出现次数 # <chr> <int> <date> <int> # 1 Donnie 1 2015-01-01 2 # 2 Donnie 1 2015-01-03 1 # 3 Donnie 2 2015-01-02 1 # ...
内容的提问来源于stack exchange,提问作者PortMadeleineCrumpet
相关产品推荐
相关产品推荐

