可能重复:
R - why does looping over a Date object result in a numeric iterator?
我有以下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
他们都变成了数字!我有两个问题:
为什么会这样?这是我做错了什么,还是R功能?
如何阻止这种情况发生,所以我在for循环中获得了一个POSIXct实例