id = sample.int(50,1000, replace = TRUE)
years <- c("2010", "2011", "2013", "2014", "2015")
year<- sample(years, 1000, prob=c(0.2,0.2,0.2,0.2, 0.2), replace = TRUE)
my_data =  data.frame(id, year)
my_data <- my_data[order(id),]

例如,患者#1在2010年两次就诊,2011年一次,2012年没有一次...患者#2在2010年没有go 过医院,2011年5次,2012年3次,等等.

对于这个数据集,我想找出每个"年"组合出现的次数(不包括重复的次数).例如,由于有5个可能的年份,因此将有2^5=32个可能的组合:

# sample output of the final result
                    combinations frequency
                           2010        11
                           2011         9
                           2012         5
                           2013         1
                           2014        19
                           2015        11
                      2011,2012         9
               2011, 2012, 2013         5
                     2013, 2015         1
  2010,2011,2012,2013,2014,2015        19

这相当于发现:

  • 2010年才有多少患者就诊?
  • 2010年和2013年有多少患者就诊?

我试图找到一种不同的方法:

# Method 1: Did not work
library(data.table)
final = setDT(my_data)[,list(Count=.N) ,names(my_data)]

# Method 2: Did not work

final =  = aggregate(.~year,rev(aggregate(.~id,my_data,paste0,collapse = ",")),length) 

# Method 3: Not sure if this is correct? There are 50 rows (instead of 32) and all frequency counts are 1?

library(dplyr)
library(stringr)
df = my_data %>% 
    group_by(id) %>% 
    summarise(years = str_c(year, collapse=",")) %>% 
    count(years)

有人能告诉我怎么解决这个问题吗?

推荐答案

底端R:

table(tapply(my_data$year, my_data$id, 
             function(x) paste(sort(unique(x)), collapse=',')))

R相关问答推荐

使用sensemakr和fixest feols模型(R)

以R为基数排列奇数个图

如何使用stat_extract_all正确提取我的目标值?

根据R中的另一个日期从多列中 Select 最近的日期和相应的结果

如何将dygraph调用到R Markdown作为一个shiny 的react 对象的参数?

在另一个函数中调用ggplot2美学

是否可以创建一个ggplot与整洁判断的交互作用

如何在一次运行中使用count进行多列计数

将数字转换为分钟和秒

使用R闪光显示所有数据点作为默认设置

R中的时间序列(Ts)函数计数不正确

无法正确设置动态创建的Quarto标注的格式

plotly hover文本/工具提示在shiny 中不起作用

以字符格式导入的ExcelElectron 表格日期列标题

根据r中另一个文本列中给定的范围对各列求和

在R中的数据框上使用Apply()函数时,如何保留非数字列?

带RStatix的Wilcoxon环内检验

如何使用ggplot2根据绘图中生成的斜率对小平面进行排序?

向内存不足的数据帧添加唯一行

根据列和行的不同组合 Select 各种单元格