我目前正在尝试提出一种将数据位从一个数据帧粘贴到另一个基于开始时间和结束时间的方法
假设我将数据集称为 testsubset1
Event FlowRate
1 2013-05-25 17:29:31 | 0.3739769
2 2013-05-25 17:37:31 | 0.5208873
3 2013-05-25 17:39:01 | 0.4235871
20 2013-05-26 01:16:31 | 0.3010403
21 2013-05-26 01:38:41 | 0.3054283
22 2013-05-26 02:01:01 | 0.3919175
116 2013-05-28 10:58:11 | 0.3851580
117 2013-05-28 11:11:12 | 0.3981671
118 2013-05-28 11:16:21 | 0.4075771
253 2013-05-31 08:31:11 | 0.3543576
254 2013-05-31 08:53:21 | 0.3553817
我还有另一个数据集,称为 Flow Obs
Start Finish FlowObs
1 2013-05-25 17:29:00 | 2013-05-26 18:38:00 | 0.3307309
2 2013-05-27 16:22:00 | 2013-05-28 20:15:00 | 0.3286909
3 2013-05-29 13:05:00 | 2013-05-30 14:42:00 | 0.3211857
4 2013-05-30 15:08:00 | 2013-06-03 11:54:00 | 0.3277443
现在我想根据开始和结束时间将 Flow Obs 中第 3 列的元素绑定到大数据,所以最终的数据集看起来像
Event FlowRate FlowObs
1 2013-05-25 17:29:31 | 0.3739769 | 0.3307309
2 2013-05-25 17:37:31 | 0.5208873 | 0.3307309
3 2013-05-25 17:39:01 | 0.4235871 | 0.3307309
20 2013-05-26 01:16:31 | 0.3010403 | 0.3307309
21 2013-05-26 01:38:41 | 0.3054283 | 0.3307309
22 2013-05-26 02:01:01 | 0.3919175 | 0.3307309
116 2013-05-28 10:58:11 | 0.3851580 | 0.3286909
117 2013-05-28 11:11:12 | 0.3981671 | 0.3286909
118 2013-05-28 11:16:21 | 0.4075771 | 0.3286909
253 2013-05-31 08:31:11 | 0.3543576 | 0.3277443
254 2013-05-31 08:53:21 | 0.3553817 | 0.3277443
逻辑是,如果事件在 Flow obs 的开始和结束之间,它会将 FlowObs 绑定到 testsubset。
我确信有一种聪明的方法可以做到这一点并应用函数,但我不能完全理解它。
我试过想出一个 for 循环来完成这个,但无法想出一个正确的方法来进入较小的数据框
希望这个问题是有道理的。对于 Stack Over flow 问题,我还是个新手。
作为旁注,时间是 POSIX 并且流量都是数字的。
编辑:我什至尝试这样做:
testsubset1[(testsubset1$Event) %in% (c(flowobs[[1]][1], flowobs[[1]][2])),]
它返回
[1] Event FlowRate
<0 rows> (or 0-length row.names)