0
すべてが機能していますが、2つのforループで非常に遅い反復です。1つの列と最も近い時刻に基づいて結合します。
基本的に2つのデータフレーム、1つとIDとイベント時間。もう1つは、10秒ごとにさまざまなIDと読み取り値(値とタイムスタンプ)を持つものです。
私はIDとイベント時刻の前に特定の間隔で時刻を合わせることによって、別のテーブルに参加しようとしています。
また、データはoracle SQLサーバーにあります。これは、テーブル結合をSQLでも実行できるかどうかです。
readingdf <- data.frame(sensorID = c('100001','100001','100001','100001','100002','100002','100002','100002'),
readTime = as.POSIXct(c("2017-07-24 04:08:09 EDT","2017-07-24 04:08:19 EDT",
"2017-07-24 04:08:29 EDT","2017-07-24 04:08:39 EDT","2017-07-24 04:08:09 EDT","2017-07-24 04:08:19 EDT",
"2017-07-24 04:08:29 EDT","2017-07-24 04:08:39 EDT"),tz="EST"),
Value = c('17.5','15.6','12.9','12.1','22.2', '24.5','19.7','20.1'))
df <- data.frame(sensorID = c('100001','100002','100001','100002','100001','100002','100001','100001'),
eventTime = as.POSIXct(c("2017-07-24 04:08:23 EDT","2017-07-24 04:08:25 EDT","2017-07-24 07:04:40 EDT",
"2017-07-24 02:19:30 EDT","2017-07-24 04:37:08 EDT","2017-07-24 04:19:59 EDT","2017-07-24 03:26:49 EDT",
"2017-07-24 03:58:17 EDT"),tz="EST"))
どのような間隔20秒ですか?詳しく教えてください。可能であれば、ここに予想される出力を貼り付けることができますか?ありがとうございました – Onyambu
テーブルが大きい場合は、Oracleサーバーで結合を実行する必要があります。 'select * from t1 inner join t2 on(t1.sensorID = t2.sensorIDとreadTime <= eventTimeとf(eventTime、readTime) <= 20) '、' f'は2つのdatetimesの間の差を秒単位で与える関数です(定義する必要があります)。 – Scarabee