2013-03-13 14 views
0

我有一个起始日期和结束日期,但是当我想提出一个清单,包含之间的所有日期格式更改:日期格式变成数字

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

回答

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),并且 从步骤to到步骤地生成序列1或-1。如果数值不同于数字 约1e-7的整数,则将包含到 的值。非数字参数被内部强制 (因此没有调度方法)复制到数字复合值, 将其虚数部分丢弃并带有警告。

所以

identical(startDate:endDate,as.numeric(startDate):as.numeric(endDate)) 
[1] TRUE 

而且顺便说一句,你生成一个矢量,而不是一个列表。你可以使用as.list函数来列出你的值,如果这是你真正想要的。