The melting of the t.wide frame changes the output order of the time column (POSIXct class).
t.wide <- data.frame(product=letters[1:5], result=c(2, 4, 0, 0, 1), t1=as.POSIXct("2014-05-26") + seq(0, 10800, length.out=5), t2=as.POSIXct("2014-05-27") + seq(0, 10800, length.out=5), t3=as.POSIXct("2014-05-28") + seq(0, 10800, length.out=5)) library(reshape2) t.long <- melt(t.wide, measure.vars=c("t1", "t2", "t3"), value.name="time") t.long$time [1] 1401055200 1401057900 1401060600 1401063300 1401066000 1401141600 1401144300 [8] 1401147000 1401149700 1401152400 1401228000 1401230700 1401233400 1401236100 [15] 1401238800 attr(,"class") [1] "POSIXct" "POSIXt"
It's strange if print() is called explicitly, the object prints as expected (timestamps, not their numeric representation).
print(t.long$time) [1] "2014-05-26 00:00:00 CEST" "2014-05-26 00:45:00 CEST" "2014-05-26 01:30:00 CEST" [4] "2014-05-26 02:15:00 CEST" "2014-05-26 03:00:00 CEST" "2014-05-27 00:00:00 CEST" [7] "2014-05-27 00:45:00 CEST" "2014-05-27 01:30:00 CEST" "2014-05-27 02:15:00 CEST" [10] "2014-05-27 03:00:00 CEST" "2014-05-28 00:00:00 CEST" "2014-05-28 00:45:00 CEST" [13] "2014-05-28 01:30:00 CEST" "2014-05-28 02:15:00 CEST" "2014-05-28 03:00:00 CEST"
Setting attributes to the same value as before the magical change in the way the object is printed.
attributes(t.long$time) <- attributes(t.long$time) t.long$time [1] "2014-05-26 00:00:00 CEST" "2014-05-26 00:45:00 CEST" "2014-05-26 01:30:00 CEST" [4] "2014-05-26 02:15:00 CEST" "2014-05-26 03:00:00 CEST" "2014-05-27 00:00:00 CEST" [7] "2014-05-27 00:45:00 CEST" "2014-05-27 01:30:00 CEST" "2014-05-27 02:15:00 CEST" [10] "2014-05-27 03:00:00 CEST" "2014-05-28 00:00:00 CEST" "2014-05-28 00:45:00 CEST" [13] "2014-05-28 01:30:00 CEST" "2014-05-28 02:15:00 CEST" "2014-05-28 03:00:00 CEST"
Can anyone explain this behavior?
r reshape2 posixct
Tobias
source share