列表中的日期格式将更改为数字

时间:2013-03-13 10:40:11

标签: r

我有一个开始日期和结束日期,但是当我创建一个列表以包含其中的所有日期时,格式会发生变化:

> 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" ....

1 个答案:

答案 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函数从您的值中创建列表,如果这是您真正想要的。