0

最初の 2 つの列に文字型​​の日付/時刻情報が含まれる大規模なデータセットがあります。

        Date     Time                    Current
1 28.02.2013 23:58:50                       NA
2 28.02.2013 23:58:50                      0.3
3 28.02.2013 23:58:51                      0.3
4 28.02.2013 23:58:51                      0.3
5 28.02.2013 23:58:57                      0.3
6 28.02.2013 23:58:58                      0.3

後で xts オブジェクトに変換したいので、次のコードを使用して、これら 2 つの列を日付と時刻を含む POSIXct 型の 1 つに変換します。

bigdata <- ldply (files, read.table,header=TRUE, sep = "\t", dec=".", as.is= 1:2 ) #read the tables keeping the charater format of the first two columns 
library("chron")
Time<-chron(bigdata$Date, bigdata$Time, format= c(dates= "d.m.y", times="h:m:s")) 
Time2<- as.POSIXct(paste(as.Date(dates(Time)),times(Time)%%1)) #to POSIXct

Time2 の結果は、日付と時刻が 1 つの列にある POSIXct オブジェクトであり、目的の結果が得られます。

"2013-02-01 00:02:09 CET" "2013-02-01 00:02:12 CET" "2013-02-01 00:02:13 CET" "2013-02-01 00:02:13 CET" "2013-02-01 00:02:13 CET".....

(以前の結果を使用したので時間が異なることはわかっていますが、考え方は同じです)

しかし、いくつかの奇妙な理由で、前に示したものと同じ特性のいくつかのデータセットを使用すると、Time2 で得られる結果は次のようになります。

"2013-02-28 CET" "2013-02-28 CET" "2013-02-28 CET" "2013-02-28 CET" "2013-02-28 CET" "2013-02-28 CET"

(今回の時間は、上記のデータセットからの抜粋と同じです)

「時間」の部分は完全に消去され、日付だけが残ります。さまざまなデータセットに同じコードを適用しましたが、大部分は問題なく動作しますが、そのうちの 1 つでこの問題が発生します。

なぜ別の結果が得られたのか、何か考えはありますか?

- - - - - - - - - - - - - -編集 - - - - - - - - - - - -----------------

Time と Time 2 の両方のオブジェクトでコマンド dput を実行しました。結果は次のとおりです。

> dput( head( Time2))
structure(c(1362006000, 1362006000, 1362006000, 1362006000, 1362006000, 
1362006000), class = c("POSIXct", "POSIXt"), tzone = "")

> dput( head( Time))
structure(c(15764.9991898148, 15764.9991898148, 15764.9992013889, 
15764.9992013889, 15764.9992708333, 15764.9992824074), format = structure(c("d.m.y", 
"h:m:s"), .Names = c("dates", "times")), origin = structure(c(1, 
1, 1970), .Names = c("month", "day", "year")), class = c("chron", 
"dates", "times"))
4

1 に答える 1