【发布时间】:2018-10-13 13:24:08
【问题描述】:
我有一个如下所示的数据集:
library(data.table)
library(magrittr)
Data1 <- data.table(
ID_a = c(1, 1, 2, 1, 2),
ID_b = c(1, 1, 1, 2, 2),
Date_1 = c("2018-01-01", "2018-05-01", "2018-07-01", "2018-09-01", "2018-10-01") %>%
as.Date
)
ID_a 和 ID_b 这两个变量是 ID 变量。现在我有另一个数据集,如下所示:
Data2 <- data.table(
ID_a = c(1, 1, 2, 1, 2),
ID_b = c(1, 1, 1, 2, 2),
Date_start = c("2018-01-01", "2018-03-01", "2018-04-01", "2018-05-01", "2018-08-01") %>%
as.Date,
Date_end = c("2018-02-01", "2018-04-01", "2018-06-01", "2018-08-01", "2018-10-01") %>%
as.Date
)
现在我想检查第一个数据集的每一行,如果日期至少在(!)Date_start 和Date_end 之间的一个范围内,并且第二个数据集的 ID 值相同。输出应如下所示(第一个为 TRUE,因为它在 ID_a == 1 和 ID_b == 1 的第一个范围内):
TRUE, FALSE, FALSE, FALSE, TRUE
【问题讨论】:
-
你有 5 行,你想要的输出是一个长度为 6 的向量。这是一个错误吗?
-
是的,对不起!一个 FALSE 太多了。
标签: r date join data.table range