Foverlaps是通过mult =“ last”(或“ first”)确定的吗?

时间:2018-12-19 19:51:50

标签: r data.table

该问题与data.table的github问题#1617

有点相关

我想使用data.table的{​​{1}}函数将日期匹配到一个范围内,但仅将其匹配到具有最大结束日期的范围(根据结构也是如此)在我的数据中,对于给定的foverlaps,所有匹配间隔的开始日期的最大范围应该相同。

这是相关的代码段

Rx_ID

问题

  1. 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

  2. sl是正确使用的函数,还是应该使用正等式非等参,考虑到foverlaps中日期戳记的重复以满足dat

  3. 如果我想使用foverlapsfoverlaps而不是sl的其他列中找到最大(或最小)值,该怎么办?

    • 我是否必须使用Rx_UTC_end对结果进行排序,然后在目标列中删除值较小的行?
    • 或者尽管索引操作未对mult="all"本身中的数据重新排序,但foverlaps仍会按照我对setindex拥有的任何sl索引的顺序进行排序?然后,我将使用sl限制。
    • 或者是否可以为mult="last"设置4个键,为sl设置3个键?在这种情况下,dat中的倒数第三列将是联接的旁观者,但用于对sl和后{sl foverlaps进行排序fo限制。

0 个答案:

没有答案