不带for循环的seq的间隔数

不带for循环的seq的间隔数,r,date,dataframe,R,Date,Dataframe,我有一个带有日期的数据框,我使用了seq()在每年的最低和最高日期之间 数据帧: daysOfStop dateConsult 1: NA 2002-11-17 2: NA 2003-11-03 3: NA 2004-12-16 4: NA 2006-01-31 5: NA 2006-01-31 6: NA 2003-02-05 7: NA 200

我有一个带有日期的数据框,我使用了
seq()
在每年的最低和最高日期之间

数据帧:

     daysOfStop dateConsult
 1:         NA  2002-11-17
 2:         NA  2003-11-03
 3:         NA  2004-12-16
 4:         NA  2006-01-31
 5:         NA  2006-01-31
 6:         NA  2003-02-05
 7:         NA  2003-09-29
 8:         NA  2005-08-01
 9:         NA  2005-08-01
10:         NA  2005-08-01
seq()
的结果:

我想做的是创建一个新列,其中的值由
seq()
的间隔定义,而不进行循环(这需要很多时间,因为我有超过120000行)

因此: 在
“2002-11-17”
“2003-11-17”
之间,是第1年(第一个间隔); 在
“2003-11-17”
“2004-11-17”
之间,是第二年(第二个间隔) 等等

预期结果:

     daysOfStop dateConsult numYear
 1:         NA  2002-11-17    1
 2:         NA  2003-11-03    1
 3:         NA  2004-12-16    3
 4:         NA  2006-01-31    4
 5:         NA  2006-01-31    4
 6:         NA  2003-02-05    1
 7:         NA  2003-09-29    1
 8:         NA  2005-08-01    3
 9:         NA  2005-08-01    3
10:         NA  2005-08-01    3
数据:

structure(list(daysOfStop = c(NA_real_, NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), 
    dateConsult = structure(c(12008, 12359, 12768, 13179, 13179, 
    12088, 12324, 12996, 12996, 12996), class = "Date")), .Names = c("daysOfStop", 
"dateConsult"), class = c("data.table", "data.frame"), row.names = c(NA, 
-10L), .internal.selfref = <pointer: 0x0000000006360788>)
structure(list(daysOfStop=c)(NA_real,NA_real,NA_real,NA_real,NA_real,
那是真的,那是真的,那是真的,那是真的,那是真的,那是真的,那是真的,
dateConsult=结构(c(1200812359127681317913179,
120881232412996129961299612996),class=“Date”),.Names=c(“daysOfStop”,
“dateConsult”),class=c(“data.table”、“data.frame”),row.names=c(NA,
-10L),.internal.selfref=)

我们可以使用
findInterval

dt1[, numYear := findInterval(dateConsult, seq(min(dateConsult), 
                       max(dateConsult), "1 year"))]

这就是我想要的功能。非常强大。谢谢
dt1[, numYear := findInterval(dateConsult, seq(min(dateConsult), 
                       max(dateConsult), "1 year"))]