start <- as.POSIXct("2016-01-17")
end <- start + as.difftime(72, units="days")
for(i in seq(from=start, by=60*60*24*7, to=end)) {
print(i)
}
如上所示,我尝试在72天内打印出2016年之后的日期。然而,输出总是数字,如1453006800.我已经尝试了我能想到的一切,包括as.Date,as.Date(i,origin =“2016-01-17 00:00:00 EST”)... .Thanks!
答案 0 :(得分:0)
这里的问题是,虽然“开始”和“结束”是POSIX日期对象,但“i”不是。通过检查它们的结构就可以看出这一点:
> str(start)
POSIXct[1:1], format: "2016-01-17"
> str(i)
num 1.46e+09
您可以使用其他循环函数而不是“for”,这似乎是将“i”强制转换为数字。您可以使用while
循环,如:
> i = start
> while (i < end) {
i = i + 60*60*24*7
print(i)
}