我在R中有一个包含3列的数据框:开始时间,结束时间和值
start_time end_time value
2017-01-03 00:00 2017-01-03 00:05 90
2017-01-03 00:05 2017-01-03 00:10 89
2017-01-03 00:10 2017-01-03 00:15 33
2017-01-03 00:15 2017-01-03 00:20 55
另一个数据框是时间列表。对于列表中的每一次,如果时间在开始时间和结束时间之间,则返回值,如果不是返回NA。我有办法使用foreach函数吗?
答案 0 :(得分:0)
您可以使用基本R cut.POSIXt()
函数来完成此操作。如果您的时间向量是例如:
library(lubridate)
df2 <- ymd_hm(c("2017-01-02 00:00", "2017-01-03 00:02", "2017-01-03 00:04", "2017-01-03 00:12")) # note that first one is not included
break2 <- unique(c(df$start_time, df$end_time))
cut.POSIXt(df2, breaks = break2, labels = c(df$value), right = TRUE)
[1] <NA> 90 90 33
注意:
right = TRUE
)2017-01-03 00:05
。