该问题与data.table
的github问题#1617
我想使用data.table
的{{1}}函数将日期匹配到一个范围内,但仅将其匹配到具有最大结束日期的范围(根据结构也是如此)在我的数据中,对于给定的foverlaps
,所有匹配间隔的开始日期的最大范围应该相同。
这是相关的代码段
Rx_ID
问题
setkey(dat, Rx_ID, eventtime, duptime) # eventtime = duptime (POSIXct)
setkey( sl, Rx, Rx_UTC_Start, Rx_UTC_end) # Rx_UTC_end > Rx_UTC_Start (POSIXct)
fo<-foverlaps(dat, sl, type="within", mult="last")
将保证它会选择对于给定的mult="last"
和Rx_UTC_end
对最大的Rx_ID
,因为它是密钥的一部分。 Rx_UTC_Start
?
sl
是正确使用的函数,还是应该使用正等式非等参,考虑到foverlaps
中日期戳记的重复以满足dat
如果我想使用foverlaps
在foverlaps
而不是sl
的其他列中找到最大(或最小)值,该怎么办?
Rx_UTC_end
对结果进行排序,然后在目标列中删除值较小的行?mult="all"
本身中的数据重新排序,但foverlaps
仍会按照我对setindex
拥有的任何sl
索引的顺序进行排序?然后,我将使用sl
限制。mult="last"
设置4个键,为sl
设置3个键?在这种情况下,dat
中的倒数第三列将是联接的旁观者,但用于对sl
和后{sl
foverlaps
进行排序fo
限制。