计算过去一周内高强度事件的比例



我有一个数据库,其中个人使用不同类型的事件进行调节,我想评估当前事件发生前7天内高强度事件的比例是否影响了他们在当前事件中的反应。

数据库中的行是事件,每个事件都有一个单独的ID变量(ID.2(和一个强度分类(intensity.code,低/中/高(。

我已经有了一个代码,可以计算过去一周每个人发生的事件数(其中APW是每周发生的事件(:

ACdatas <- ACdatas %>%
group_by(ID.2) %>%
mutate(
APW = sapply(Datetime, function(d) sum(between(as.numeric(difftime(d, Datetime[Datetime < d], units = "days")), 0, 7)))
) %>% ungroup()

现在,我想计算一下在过去一周内,每个人的高强度事件在总事件中所占的比例。

以下是我的数据集中相关字段的子集(实际数据集中有50个人和5900条ish记录(:

head(ACdatas)
>    Datetime         ID.2  Intensity.code
> 1  2019-05-25 11:57  139   Medium
> 2  2019-05-20 19:42  139   High
> 3  2019-05-21 20:12  139   High
> 4  2019-05-26 17:27  139   Low
> 5  2019-05-23 9:13   139   Low
> 6  2019-05-22 16:18  139   Medium
> 7  2019-06-10 17:27  152   Low
> 8  2019-06-09 9:13   152   Low
> 9  2019-06-08 16:18  152   Low
> 10 2019-06-08 17:00  152   High

我试图在用于计算一周内行动次数的mutate函数中添加一个比例计算(如上(,但还没有成功!任何帮助都将不胜感激!

一个很棒的朋友帮我解决了这个问题,我想我会把答案发布在这里,以防能帮助其他人!首先,计算上周的行动次数

library(dplyr)
ACdatas <- ACdatas %>%
group_by(ID.2) %>%
mutate(
APW = sapply(Datetime, function(d) sum(between(as.numeric(difftime(d,         Datetime, units = "mins")), 1, 10080)))
) %>% ungroup()

然后计算上周的高强度动作

ACdatas <- ACdatas %>%
group_by(ID.2) %>%
mutate(
HIE = sapply(Datetime, function(d) sum(between(as.numeric(difftime(d, Datetime, units = "mins")), 1, 10080) &  Intensity.code == "High"))
) %>% ungroup()

然后计算过去一周高强度的比例

ACdatas <- ACdatas %>%
mutate(PHIE = HIE/APW)

相关内容

  • 没有找到相关文章

最新更新