私は現在、開始時間と終了時間に基づいて、あるデータフレームから別のデータフレームにデータのビットを貼り付ける方法を考え出そうとしています
データセットに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 ループを考えてみましたが、小さいデータ フレームにステップ インする適切な方法を思いつくことができませんでした。
うまくいけば、この質問は理にかなっています。スタック オーバー フローについて質問するのはまだ初めてです。
補足として、時刻は POSIX であり、フローはすべて数値です。
編集:私はこれをやってみました:
testsubset1[(testsubset1$Event) %in% (c(flowobs[[1]][1], flowobs[[1]][2])),]
そしてそれは戻ってきます
[1] Event FlowRate
<0 rows> (or 0-length row.names)