以示例为例
library(data.table)
library(dplyr)
df_test_1 <-
data.table(time = c(seq(20, 40, by = 5))) %>%
mutate(values = -time) %>%
setkey(time)
df_test_2 <-
data.table(time = c(15, 20, 26, 28)) %>%
mutate(orig_time = time) %>%
setkey(time)
滚动连接df_test_2[df_test_1, roll = -Inf]
产生:
time orig_time values
1: 20 20 -20
2: 25 26 -25
3: 30 NA -30
4: 35 NA -35
5: 40 NA -40
最后三行在NA
列中包含orig_time
,因为df_test_2
中没有时间大于或等于30的记录。
我想制作内心的&#39;上述连接的版本,即不输出没有时间匹配的行,例如:
time orig_time values
1: 20 20 -20
2: 25 26 -25
答案 0 :(得分:3)
要复制内部联接,您可以使用nomatch
参数。
df_test_2[df_test_1, roll = -Inf, nomatch=0]
另见: