R 每个ID的重叠日期的总和值

R 每个ID的重叠日期的总和值,r,date,add,R,Date,Add,我发现这个问题与我的非常相似,但开始日期和停止日期有时是相同的()。我想直接发表评论和询问,但我没有超过15岁的声誉 假设数据如下(从Uwe复制): 其中开始日期和停止日期不重叠 还有,这是Uwe的第一步,有人能告诉我-1L在这里是什么意思吗?我知道tmp是一个临时向量,但为什么我们需要-1 library(data.table) options(datatable.print.class = TRUE) breaks <- DT[, { tmp <- unique(sort(c

我发现这个问题与我的非常相似,但开始日期和停止日期有时是相同的()。我想直接发表评论和询问,但我没有超过15岁的声誉

假设数据如下(从Uwe复制):

其中开始日期和停止日期不重叠

还有,这是Uwe的第一步,有人能告诉我-1L在这里是什么意思吗?我知道tmp是一个临时向量,但为什么我们需要-1

library(data.table)
options(datatable.print.class = TRUE)
breaks <- DT[, {
  tmp <- unique(sort(c(date1, date2)))
  .(start = head(tmp, -1L), end = tail(tmp, -1L))
  }, by = ID]
breaks
库(data.table)
选项(datatable.print.class=TRUE)

使用
head
tail
中断,它分别跳过
tmp
的最后一个和第一个值。检查
头部(1:10,-1)
尾部(1:10,-1)
的输出。感谢您的解释!当我尝试(1:10,-1)时,结果是有8行。使用
head
tail
它分别跳过
tmp
的最后和第一个值。检查
头部(1:10,-1)
尾部(1:10,-1)
的输出。感谢您的解释!当我尝试(1:10,-1)时,结果是有8行。
ID    date1         date2       Value
15  2003-04-05  2003-04-19      1
15  2003-04-20  2003-05-06      2
15  2003-05-07  2003-06-20      1
17  2003-03-05  2005-04-14      1   
17  2005-04-15  2007-02-22      3
17  2007-02-23  2014-05-19      2
library(data.table)
options(datatable.print.class = TRUE)
breaks <- DT[, {
  tmp <- unique(sort(c(date1, date2)))
  .(start = head(tmp, -1L), end = tail(tmp, -1L))
  }, by = ID]
breaks