2

重複の可能性:
R-Dateオブジェクトをループすると数値イテレータが生成されるのはなぜですか?

特定の範囲の日付のベクトルを生成する次の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つの質問があります:

  1. なぜこうなった?それは私が間違ったことですか、それともR機能ですか?

  2. どうすればこれを防ぐことができるので、forループ内にPOSIXctインスタンスを取得します

4

0 に答える 0