何が起きてる?
設定
y1
およびy2
、同等の data.framesを作成します。を使用しy1
て生成され、直接読み込まれます。gather
y2
library(tidyr)
x <- data.frame(id = 1:2,
day_01 = as.POSIXct(c('2015-03-09', '1989-02-11')),
day_02 = as.POSIXct(c('1985-09-11', '2000-08-15')),
gender = factor(c("M", "F")))
y1 <- gather(x, key, value, day_01, day_02)
y2 <- read.table(text="id gender key value
1 M day_01 2015-03-09
2 F day_01 1989-02-11
1 M day_02 1985-09-11
2 F day_02 2000-08-15", header=TRUE)
y2 <- within(y2, value<-as.POSIXct(as.character(value)))
y1
そしてy2
等しい
all.equal(y1, y2)
# [1] TRUE
問題
サブセットy1
化は POSIXct 列を数値に落としますがy2
、同じ方法でのサブセット化はそうではありません。
y1[y1$gender == 'M', ]
# id gender key value
# 1 1 M day_01 1.426e+09
# 3 1 M day_02 4.953e+08
y2[y2$gender == 'M', ]
# id gender key value
#1 1 M day_01 2015-03-09
#3 1 M day_02 1985-09-11
セッション情報
R バージョン 3.1.2 (2014-10-31) プラットフォーム: i386-w64-mingw32/i386 (32 ビット)
tidyr 0.2.0.9000