ber*_*roe 6 loops r date lubridate
这令我很沮丧.即使lubridate我在循环它们时也无法保持日期以保持其类型.例如:
require(lubridate)
yearrange = ymd(20110101) + years(seq(4))
yearrange
#[1] "2012-01-01 UTC" "2013-01-01 UTC" "2014-01-01 UTC" "2015-01-01 UTC"
class(yearrange)
#[1] "POSIXct" "POSIXt"
Run Code Online (Sandbox Code Playgroud)
但是,如果我试图循环多年(在我的数据集中为每年创建一个单独的图):我丢失了年份的格式,并且必须重新投射数据
for (yr in yearrange) { show(yr) }
#[1] 1325376000
#[1] 1356998400
#[1] 1388534400
#[1] 1420070400
Run Code Online (Sandbox Code Playgroud)
如果我循环指定索引,我会返回日期对象:
for (i in seq(length(yearrange))) { show(yearrange[i]) }
#[1] "2012-01-01 UTC"
#[1] "2013-01-01 UTC"
#[1] "2014-01-01 UTC"
#[1] "2015-01-01 UTC"
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以避免索引选项,而不使用foreach,或者这是唯一的方法吗?
试试这个
for (yr in as.list(yearrange)) { show(yr) }
Run Code Online (Sandbox Code Playgroud)
我认为for (yr in yearrange)强制yearrange转换为矢量,POSIXct而不是矢量强制转换为支持的类型之一.