as.Dateするときはタイムゾーンをちゃんと指定しよう問題
POSIXctな時刻データにas.Dateすると、1日前の日付に変わってしまう。
> as.POSIXct("2001-01-01 00:00:01") [1] "2001-01-01 00:00:01 JST" > as.Date(as.POSIXct("2001-01-01 00:00:01")) [1] "2000-12-31"
これはタイムゾーンを指定しないとGMTと解釈されるためであり、タイムゾーンを適切に指定すれば問題ない。
> as.Date(as.POSIXct("2001-01-01 00:00:01"), tz = "Asia/Tokyo") [1] "2001-01-01"
怖い。