我正在尝试使用数据表来操作大型数据集,但遇到了麻烦。考虑以下(大大简化的)数据表,其中包含4行ID和3个代码和日期组合
>my_data
id code.1 date.1 code.2 date.2 code.3 date.3
1: 4 1 2000-06-26 11 1999-11-09 11 1999-10-26
2: 7 22 1998-07-24 11 1998-07-22 49 1998-07-20
3: 9 47 1998-10-28 49 1999-10-19 4 1998-10-28
4: 12 1 1999-03-21 11 1999-10-22 4 1998-02-07
我想为每个ID计算某个代码(例如代码= 11)在特定时间间隔内出现的次数(例如> 1998-07-01)。
我尝试了不同的东西,在这里寻找答案......最终变得不那么雄心勃勃了,最终尝试了这个(这仍然不起作用:():
n_id <- length(my_data$did)
output <- matrix(0,n_id,1)
for (i in 1:n_id) {
for (j in 1:3) {
if (my_data$code.[[i]][j] == 11 & my_data$date.[[i]][j]>as.Date(”1999-01-01”)) {trait[i] <-trait[i]+1}
}
}
output
我希望输出看起来像这样:
输出 [1] [1,] 2 [2,] 1 [3,] 0 [4,] 1
我希望有人可以在我发疯之前帮助我(同时,我确信必须有一种更有效的方法来做到这一点,而不是像我上面尝试的那样循环数据)