If statement 列上的数据表逻辑操作

If statement 列上的数据表逻辑操作,if-statement,datatable,If Statement,Datatable,我试图使用数据表来操作大型数据集,但遇到了麻烦。考虑下面的大大简化的数据表,其中包含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

我试图使用数据表来操作大型数据集,但遇到了麻烦。考虑下面的大大简化的数据表,其中包含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,特定代码(例如code=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

我希望有人能在我发疯之前帮助我,我相信一定有一种比我在上面尝试的数据循环更有效的方法来做到这一点