【发布时间】:2017-06-21 09:33:02
【问题描述】:
我有两个数据框,一个包含测量值和时间戳,另一个包含带有开始和结束时间的测量周期:
txt1 <- " v1 datetime
23 '2016-02-14 12:00:10'
12 '2016-02-14 12:03:10'
21 '2016-02-14 12:50:00'
52 '2016-02-14 13:01:10'
53 '2016-02-14 13:05:50'
23 '2016-02-14 13:09:25'
95 '2016-02-14 13:20:10'
11 '2016-02-14 13:21:00'
64 '2016-02-14 13:25:12'
41 '2016-02-14 13:45:34'
14 '2016-02-14 13:53:08'
"
txt2 <- " mp start end
1 '2016-02-14 12:00:00' '2016-02-14 12:11:00'
2 '2016-02-14 12:58:00' '2016-02-14 13:13:00'
3 '2016-02-14 13:22:00' '2016-02-14 14:00:00'
"
d1 <- read.table(textConnection(txt1), header = TRUE,
colClasses = c("integer", "POSIXct"))
d2 <- read.table(textConnection(txt2), header = TRUE,
colClasses = c("integer", "POSIXct" ,"POSIXct"))
我想为每个测量分配正确的测量周期(保留不匹配的行):
" v1 datetime mp
23 '2016-02-14 12:00:10' 1
12 '2016-02-14 12:03:10' 1
21 '2016-02-14 12:50:00' NA
52 '2016-02-14 13:01:10' 2
53 '2016-02-14 13:05:50' 2
23 '2016-02-14 13:09:25' 2
95 '2016-02-14 13:20:10' NA
11 '2016-02-14 13:21:00' NA
64 '2016-02-14 13:25:12' 3
41 '2016-02-14 13:45:34' 3
14 '2016-02-14 13:53:08' 3
"
我目前的方法是使用嵌套的 for 循环,但我正在寻找更有效的方法。
【问题讨论】: