R中的分组依据和日期间摘要

R中的分组依据和日期间摘要,r,data-visualization,R,Data Visualization,各位R用户 我花了两个小时来思考这个问题,却找不到任何解决办法 简介: 我正在研究一个新冠病毒数据集,我必须根据一周和一个给定的地点计算发病率和流行率 发病率很容易,我的代码是: 我创建了一列“week”,通过此函数将日期指定为一周: floor_date_by_week <- function(the_date) { return(lubridate::date(the_date) - lubridate::wday(the_date-1) +1 ) } 按周划分的楼层日期% 总结

各位R用户

我花了两个小时来思考这个问题,却找不到任何解决办法

简介:

我正在研究一个新冠病毒数据集,我必须根据一周和一个给定的地点计算发病率和流行率

发病率很容易,我的代码是:

我创建了一列“week”,通过此函数将日期指定为一周:

floor_date_by_week <- function(the_date) {
  return(lubridate::date(the_date) - lubridate::wday(the_date-1) +1 )
}
按周划分的楼层日期%
总结(案例=n())%>%
左连接(,pop,by=c(“位置”=“位置”))%>%
突变(inc=圆形(100000*n/pop,2))%>%
选择(-pop)
现在我必须计算每周和每个地方的实际积极因素的数量,这让我发疯

问题是:

数据集中的每一行都是一个人,我有一个变量表示感染日期,一个变量表示康复/死亡日期。在这两个日期之间,患者呈阳性,我必须通过将其纳入
组,但我不知道如何进行

玩具数据集示例:

病人 感染日期 康复日期死亡日期 位置 周 1. 2020-02-21 2020-03-02 A. 2020-02-17 2. 2020-02-23 2020-04-15 A. 2020-02-17 3. 2020-02-26 2020-03-12 B 2020-02-24 ... ... ... ... ...
这可能会有所帮助

df%pivot\u更长(c(感染日期、恢复日期、死亡日期),名称前缀='date\u of\u',
名称到='event',值到='date')%>%
变异(日期=as.date(日期),
周=日期-润滑油::wday(日期-1)+1,
dummy=ifelse(事件=='infection',1,-1))%>%
分组依据(周、地点)%>%
总结(活动案例、添加案例或恢复案例=总和(虚拟),.groups='drop')%>%
安排(地点,周)%>%
分组依据(位置)%>%
变异(净活动案例=累计(活动案例添加或恢复))
#>#A tibble:5 x 4
#>周位置活动\u案例\u添加\u或\u恢复的净\u活动\u案例
#>                                                     
#>1 2020-02-17A 2
#>2 2020-03-02A-11
#>3 2020-04-13A-10
#>4 2020-02-24 B 1 1
#>5 2020-03-09 B-10
由(v2.0.0)于2021-05-05创建

如果缺少一些数据,这将进一步有助于更好地展示

df%>%pivot\u更长(c(感染日期、恢复日期、死亡日期),名称前缀='date\u of\u',
名称到='event',值到='date')%>%
变异(日期=as.date(日期),
周=日期-润滑油::wday(日期-1)+1,
dummy=ifelse(事件=='infection',1,-1))%>%
分组依据(周、地点)%>%
总结(活动案例、添加案例或恢复案例=总和(虚拟),.groups='drop')%>%
完成(周=连续日期(最短(周)、最长(周)、截止日期='7天'),
嵌套(位置),
填充=列表(活动案例添加或恢复案例=0))%>%
安排(地点,周)%>%
分组依据(位置)%>%
变异(净活动案例=累计(活动案例添加或恢复))
#>#tibble:18x4
#>周位置活动\u案例\u添加\u或\u恢复的净\u活动\u案例
#>                                                      
#>1 2020-02-17A 2
#>202020-02-24A02
#>3 2020-03-02A-11
#>4 2020-03-09 A 0 1
#>52020-03-16A01
#>62020-03-23A01
#>7 2020-03-30 A 0 1
#>8 2020-04-06 A 0 1
#>9 2020-04-13A-10
#>102020-02-17B0
#>11 2020-02-24 B 1 1
#>12 2020-03-02 B 0 1
#>13 2020-03-09 B-10
#>14 2020-03-16 b0 0
#>152020-03-23B00
#>162020-03-30B00
#>172020-04-06B00
#>182020-04-13B00

由(v2.0.0)于2021-05-05创建,这可能会有所帮助

df%pivot\u更长(c(感染日期、恢复日期、死亡日期),名称前缀='date\u of\u',
名称到='event',值到='date')%>%
变异(日期=as.date(日期),
周=日期-润滑油::wday(日期-1)+1,
dummy=ifelse(事件=='infection',1,-1))%>%
分组依据(周、地点)%>%
总结(活动案例、添加案例或恢复案例=总和(虚拟),.groups='drop')%>%
安排(地点,周)%>%
分组依据(位置)%>%
变异(净活动案例=累计(活动案例添加或恢复))
#>#A tibble:5 x 4
#>周位置活动\u案例\u添加\u或\u恢复的净\u活动\u案例
#>                                                     
#>1 2020-02-17A 2
#>2 2020-03-02A-11
#>3 2020-04-13A-10
#>4 2020-02-24 B 1 1
#>5 2020-03-09 B-10
由(v2.0.0)于2021-05-05创建

如果有
output <- data %>% 
  group_by(week, Location) %>% 
  summarise(cases = n()) %>% 
  left_join(., pop, by = c("Location" = "Location")) %>% 
  mutate(inc = round(100000*n/pop,2)) %>% 
  select(-pop)