1
嘿,我不知道如果我完全理解滚动连接解决方案,特别是当涉及到表中的重复条目。多个匹配滚动连接
下面是一个简单的数据:
new <- data.table(date = as.POSIXct(c("2016-03-01 12:20:00", "2016-03-01 12:20:00", "2016-04-02 12:20:00")), data.new = c("sample1","sample2","sample3"))
new
old <- data.table(date = as.POSIXct(c("2016-03-02 12:20:00", "2016-03-07 12:20:00", "2016-04-02 12:20:00", "2015-03-02 12:20:00")), data.old = c("a","b","c","d"))
old
setkey(new, date)
setkey(old, date)
new[old,roll=-Inf]
输出看起来像:
date data.new data.old
1: 2015-03-02 12:20:00 sample1 d
2: 2016-03-02 12:20:00 sample3 a
3: 2016-03-07 12:20:00 sample3 b
4: 2016-04-02 12:20:00 sample3 c
我正在比赛除了data.old 'd' 的情况下正常工作。 由于新表也有类似的前两个时间戳,卷刚能映射到第一次出现理想我想复制的一行data.old“d”与data.new列“SAMPLE2”
date data.new data.old
new: 2015-03-02 12:20:00 sample2 d
1: 2015-03-02 12:20:00 sample1 d
2: 2016-03-02 12:20:00 sample3 a
3: 2016-03-07 12:20:00 sample3 b
4: 2016-04-02 12:20:00 sample3 c
任何指导表示赞赏。
感谢您的解决方案。我期待在最近的时间印记的比赛,所以我用滚动加入,所以我只是想匹配到最近的时间戳,如果有多个最近的时间戳记,我想在这种情况下复制行(所以我只想要“d”的两行,因为“样本1”和“样本2”是最接近的)。使用非平等加入我会得到所有时间戳比我在()解决方案案例中的时间戳更大或更小的时间戳所有更大的时间戳。 – PSraj
@PSraj查看更新,HTH – Jaap
感谢这工作像魅力。 – PSraj