我有一个数据集,描述每个患者住院的天数 (BedDays):
my_df<-data.frame(RecordID=c("1","2","3","4","5","6","7","8","9","10"),
StartDate=c("2020-03-02","2020-03-05"
,"2020-03-08","2020-03-11"
,"2020-03-14","2020-03-17"
,"2020-03-20","2020-03-23"
,"2020-03-26","2020-03-29"),
BedDays=c(12,3,2,11,1,10,18,10,3,6))
并想统计每天使用的床位数量。我希望我的结果是:
到目前为止,我只能想到数组和循环的使用。使用数组列出每个患者住院的日期,然后使用循环遍历数组来统计某一天住院的患者。这将是某一天使用的床位数量。这听起来很复杂。
是否有任何聪明的函数/包可以轻松完成这种转换?
我认为关键是将您的时间“扩展
BedDays
到”一系列日期,然后计算这些天数。下面的代码首先按日期拆分数据,然后创建包含尽可能多行的 data.frames
BedDays
,将所有这些临时 df 放在一起,然后聚合数据以按日期计算床位数量。创建于 2024-01-02,使用reprex v2.0.2
一个
data.table
选项uncount
这是和的组合count
:输出: