0

一緒に rbind しようとしている非常によく似た 2 つのデータフレームがありますが、問題が発生しています。dput() を使用して、各データフレームから 3 列 (そのうちの 1 つは問題があります) と 10 行を取得しました。

str1 = structure(list(period_type = c("half", "half", "half", "half", 
                               "half", "half", "half", "half", "half", "half"), period_number = c(1L, 
                                                                                                  1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), clock = structure(c("72000", 
                                                                                                                                                           "70800", "69720", "69600", "69480", "68280", "67200", "66780", 
                                                                                                                                                           "65160", "65160"), class = c("hms", "difftime"), units = "secs")), row.names = c(NA, 
                                                                                                                                                                                                                                            10L), class = "data.frame")

str2 = structure(list(period_type = c("half", "half", "half", "half", 
                               "half", "half", "half", "half", "half", "half"), period_number = c(1L, 
                                                                                                  1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), clock = structure(c(72000, 
                                                                                                                                                           71640, 70140, 70020, 69720, 69720, 69720, 69720, 69300, 67860
                                                                                                  ), class = c("hms", "difftime"), units = "secs")), row.names = c(NA, 
                                                                                                                                                                   10L), class = "data.frame")

> head(plyr::rbind.fill(str1, str2))
  period_type period_number      clock
1        half             1 NA:NA:NANA
2        half             1 NA:NA:NANA
3        half             1 NA:NA:NANA
4        half             1 NA:NA:NANA
5        half             1 NA:NA:NANA
6        half             1 NA:NA:NANA

実行するとrbind.fill、時計の列がNA:NA:NANAになってしまい、イライラします。各データフレームの列のクラスを確認するとclock、それらは同じように「見えます」:

> class(str1$clock)
[1] "hms"      "difftime"
> class(str2$clock)
[1] "hms"      "difftime"

...しかし、dput()幸いなことに、クロック ベクターの値は、str1 の文字列と str2 の数値であることがわかりました。繰り返しますが、これらのデモstrデータフレームはゼロから作成したのではなく、完全なデータフレームから作成したものであるため、clockデータフレーム間の列が明らかに異なります。

列の型が一貫するようにこれらのいずれかを修正するにはどうすればよいですか? 前もって感謝します!!

4

1 に答える 1