特定の範囲の日付のベクトルを生成する次のRコードがあります。
library(lubridate)
start_date = ymd("2009-07-25")
end_date = ymd("2010-11-30")
dates <- seq(from=start_date, to=end_date, by="1 day")
日付ベクトルの構造を見ると、次のようになります。
> str(dates)
POSIXct[1:494], format: "2009-07-25" "2009-07-26" "2009-07-27" "2009-07-28" "2009-07-29"...
ベクトルの要素の構造を見ると、次のようになります。
> str(dates[5])
POSIXct[1:1], format: "2009-07-29"
私がこれまでに期待するすべてのもの。ただし、これらの日付でforループを実行し、次の構造を確認すると、次のようになります。
> for (d in dates) {str(d)}
num 1.25e+09
num 1.25e+09
num 1.25e+09
num 1.25e+09
それらはすべて数値に変更されました!2つの質問があります:
なぜこうなった?それは私が間違ったことですか、それともR機能ですか?
どうすればこれを防ぐことができるので、forループ内にPOSIXctインスタンスを取得します