R:计算个人在特定间隔内花费的时间

时间:2019-05-31 17:18:09

标签: r

我进行了一项队列研究,参与者的观察时间不同,范围从0到1000天。我想算出参与者在时间0以后每年花费了多少时间。例如,在观察的第二年中花了多少总时间(假设某些参与者在这一年退出)?

一些示例数据:

days_in_study <- c(12, 500, 344, 678, 987, 129, 200, 57, 843, 611, 113, 98, 212, 399)
years_in_study <- days_in_study / 365

到目前为止,我最好的方法是编写一个函数,计算出特定年份的风险时间,然后将其应用于每年(例如,第一年,第二年)。

fun <- function(x, time) sum(time >= x) + 
                         sum((time - x + 1)[time < x & time >= (x - 1)])

函数的第一部分将在x年之后幸存的参与者相加,第二部分将在x年退出的参与者相加年数。

现在可以多年使用该功能:

years <- 1:5
sapply(years, fun, time = years_in_study)

# [1] 9.191781 3.994521 1.013699 0.000000 0.000000
# i.e. 9.19 person-years during the first year of observation
# 3.99 person-years during the second year

最好的方法是什么?

0 个答案:

没有答案
相关问题