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

他们都变成了数字!我有两个问题:

  1. 为什么会这样?是我做错了什么,还是 R 功能?

  2. 我怎样才能阻止这种情况发生,所以我在我的 for 循环中得到了一个 POSIXct 实例

4

0 回答 0