1つのデータセット(検出)で見つかった時間(POSIXct内)と、POSIXctの範囲内で別のデータセット(GPS);第2のデータセットにあるGPS座標を第1のデータセット内の関連する位置にコピーします。あるデータセットのPOSIXctを他のデータセットのPOSIXctの範囲に一致させる
私は2つのデータセットを持っています:1つは検出データ、もう1つはGPS座標と到着/出発時間です)。検出データの
例:
Time Receiver Transmitter Latitude Longitude
2015-10-29 14:17:31 Boat A69-25863 NA NA
2015-10-29 14:23:49 Boat A69-25863 NA NA
2015-10-29 14:25:49 Boat A69-25863 NA NA
2015-11-22 14:38:57 Boat A69-25864 NA NA
2015-11-22 14:40:06 Boat A69-25864 NA NA
(5429 entries)
時間がPOSIXctフォーマットであり、送信機が要因です。 GPSデータの
例:
ArrivalLocation ArrivalTime ArrivalLon ArrivalLat DepartureTime
Saint Blaize 2015-10-29 12:19:08 22.14484 -34.17841 2015-10-29 14:38:29
Pansy Beach 2015-10-29 15:04:17 22.12347 -34.16677 2015-10-29 15:27:45
Santosstrand 2015-10-29 15:44:23 22.13361 -34.16975 2015-10-29 16:14:40
Santosstrand 2015-10-29 16:29:32 22.13642 -34.17137 2015-10-29 16:58:39
Seal Island 2015-11-22 13:49:30 22.12081 -34.14991 2015-11-22 18:25:05
Saint Blaize 2015-11-22 18:40:19 22.14519 -34.17847 2015-11-25 09:07:18
(669 entries)
ArrivalTimeはとDepartureTime両方がPOSIXct形式です。
ここで、2番目のデータセットのGPS座標を1番目のデータセットの関連する位置にコピーします。
例:2015-10-29 14:17:31
における第一の検出は、第一GPSの範囲内 座標:2015-10-29 12:19:08
と2015-10-29 14:38:29
でSaint Blaize
。そして、座標-34.17841
と22.14484
が検出データセットにその関連細胞にコピーする必要があります手動で行う場合
Time Receiver Transmitter Latitude Longitude
2015-10-29 14:17:31 Boat A69-25863 -34.17841 22.14484
は、私が5400以上のエントリ(と成長)を持って考えると、これは雑用になります。
私はifelse()
とmatch()
とif(){}
の機能を使用してみましたが、役に立たなかったと思います。
Detection$Latitude <- ifelse(Detection$Time >= GPS$ArrivalTime & Detection$Time <= GPS$DepartureTime, GPS$ArrivalLat, Detection$Latitude)
Detection$Latitude <- GPS[match(Detection$Time >= GPS$ArrivalTime & Detection$Time <= GPS$DepartureTime), "ArrivalLat"]
範囲を指定する方法に問題があると思われますが、これは最大のエラーではない可能性があります。
(物事が十分に明らかにされていない場合、これが私の謝罪ので、スタックオーバーフローの私の最初の投稿/質問です。)