我有一个开始日期和结束日期,但是当我创建一个列表以包含其中的所有日期时,格式会发生变化:
> startDate <- as.Date("2012-01-01")
> startDate
[1] "2012-01-01"
> endDate <- as.Date("2012-02-01")
> endDate
[1] "2012-02-01"
> startDate:endDate
[1] 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15350 15351 15352 15353 15354 15355
[17] 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371
因此,您可以看到所有日期都转换为数字格式。 但问题是,我有一个API函数只能读取日期格式为“YYYY-MM-DD”。 任何人都可以建议我如何生成如下列表:
[1] "2012-01-01" "2012-01-02" "2012-01-03" "2012-01-04" ....
答案 0 :(得分:2)
使用seq
功能:
seq(startDate,endDate,by="day") #you could use also by=1
# see ?seq.Date for other options for "by"
来自运营商:
的帮助页面(使用?":"
或?Colon
):
对于来自:to的其他参数等同于seq(from,to)和 从1到1生成一个序列,步长为1或-1。价值 如果它与一个整数到一个数字不同,将被包括在内 大约1e-7的模糊。非数字参数在内部强制执行 (因此没有调度方法)数值复数值将 将他们想象中的部分丢弃并发出警告。
所以
identical(startDate:endDate,as.numeric(startDate):as.numeric(endDate))
[1] TRUE
顺便说一下,你正在生成一个向量,而不是一个列表。您可以使用as.list
函数从您的值中创建列表,如果这是您真正想要的。