マージしようとしているデータフレームが2つあります(d1
とsmall
)。私は各データフレームをエクスポートして、hereを利用可能にしました。dplyrでPOSIXctオブジェクトのfull_joinにエラーが発生しました
d1
データフレームは、small
データフレームを生成するために使用されました。私は、一連のfor if
ループを使用して、を作成し、small
データセットを生成するためにd1
データセットの各種(sps
)の有無を(2時間のビンで)決定しました。
私はこのような何かを得るためにd1
で(仮想的な例を)それらをsmall
からTRUE
/FALSE
行を取ると、マージされてやろうとしています:
datetime MUVI80 MUXX80 MICRO80 TAHU80 TAST80 ERDO80 LEAM80 ONZI80 MEME80 MAMO80 sps pp datetime km crossingtype
1 2012-06-19 01:42:00 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE MICRO 0 2012-06-19 02:19 80 Exploration
2 2012-06-21 21:42:00 FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE MUXX 1 2012-06-21 23:23 80 Unknown
3 2012-07-15 09:42:00 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE MAMO 0 2012-07-15 11:38 80 Complete
4 2012-07-20 21:42:00 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE MICRO 0 2012-07-20 22:19 80 Exploration
5 2012-07-29 21:42:00 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE MICRO 0 2012-07-29 23:03 80 Exploration
6 2012-08-08 23:42:00 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE MICRO 0 2012-08-07 02:04 80 Complete
両方のデータセットは、共通のフィールドdatetime
を共有しながら、それらは異なるフォーマットされており、これは、2つの理由のために問題を引き起こしている:
datetime
フィールドはにPOSIXct
オブジェクトでありますですが、d1
にはありません。small
にdatetime
フィールドを作成するには、2時間のタイムビンも作成しました(つまり、2時間以内に種が存在していた(TRUE
)または不在(FALSE
))。つまり、フィールドは、small
とd1
データセットの間で完全に一致しません。むしろdatetime
フィールドのd1
は、フィールドの2時間以内のどこでもsmall
になります。 したがって
、私は試してみてください。
time<-dplyr::full_join(small, d1, by = "datetime")
それは明らかに動作しません。次のように
私が手にエラーがある:
Error in full_join_impl(x, y, by$x, by$y, suffix$x, suffix$y, check_na_matches(na_matches)) : cannot join a POSIXct object with an object that is not a POSIXct object
誰がどのように私ができる上の任意の提案を持っています:
- が異なる
datetime
フィールドがであり、その後にそれらを強制フォーマットどのようなチェックを同じフォーマット。 datetime
フィールドに時間の不一致があっても、これら2つのデータセットをマージします。
両方のデータセットを共有できますか? – suchait