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