【发布时间】:2019-03-29 21:31:13
【问题描述】:
我有两个数据框:df1 和 df2(参见下面的示例)。 df1 包含每个字符 id 的数字开始和结束值。 df2 每个字符 id 包含多个事件,包括数字时间值。
library(dplyr)
df1 <- data_frame(id = c("A", "B"),
start = c(2, 3),
end = c(5, 9))
df2 <- data_frame(id = c(rep("A", 4), rep("B", 4)),
time = c(1, 3, 5, 8, 2, 3, 4, 10),
keep = c(FALSE, TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE))
我正在尝试使用 dplyr 过滤 df2 中的事件,该时间值等于或介于 df1 中每个 id 的开始值和结束值之间。所以过滤器是 "df2$time >= df1$start & df2$time
如何为每个 id 执行此过滤器?最好使用 dplyr。这应该是最终结果:
df2 %>%
filter(keep == TRUE)
非常感谢任何帮助!
【问题讨论】: