最新のreshape2パッケージ (1.2.1) の dcast を使用して、value.var が POSIXct 型であるデータ フレーム (または data.table) を非正規化しようとしていますが、結果のデータ フレームでは日付値が失われています。それらの POSIXct クラスと数値になります。
値を POSIXct のものに戻したい場合、生成されたすべての列を as.POSIXct() する必要がありますか、それとも何か不足していますか?
x <- c("a","b");
y <- c("c","d");
z <- as.POSIXct(c("2012-01-01 01:01:01","2012-02-02 02:02:02"));
d <- data.frame(x, y, z, stringsAsFactors=FALSE);
str(d);
library(reshape2);
e <- dcast(d, formula = x ~ y, value.var = "z");
str(e);
上記のステートメントを実行した結果 (新しい列 c と d は POSIXct ではなく数値のエポック秒であることに注意してください):
> x <- c("a","b");
> y <- c("c","d");
> z <- as.POSIXct(c("2012-01-01 01:01:01","2012-02-02 02:02:02"));
> d <- data.frame(x, y, z, stringsAsFactors=FALSE);
> str(d);
'data.frame': 2 obs. of 3 variables:
$ x: chr "a" "b"
$ y: chr "c" "d"
$ z: POSIXct, format: "2012-01-01 01:01:01" "2012-02-02 02:02:02"
> library(reshape2);
> e <- dcast(d, formula = x ~ y, value.var = "z");
> str(e);
'data.frame': 2 obs. of 3 variables:
$ x: chr "a" "b"
$ c: num 1.33e+09 NA
$ d: num NA 1.33e+09