2014-04-29 24 views
0

通常我用这个:如何生成日期序列格式dd/mm/yy或%d%m%y?

seq(as.Date("01/01/1964"), as.Date("01/12/1964"), "months", format = "%d%m%Y", tz = "UTC") 

,但我收到这样的:

[1] "0001-01-19" "0001-02-19" "0001-03-19" "0001-04-19" "0001-05-19" "0001-06-19" "0001-07-19" "0001-08-19" "0001-09-19" 
[10] "0001-10-19" "0001-11-19" "0001-12-19" 

我试着从别人ANS lubridate等提示,但不工作。

在此先感谢。

EDIT

@ r2evans ANS:

format(seq(as.Date('1964/01/01'), as.Date('1964/12/01'), 'months'), format="%d-%m-%Y", tz="UTC") 
[1] "01-01-1964" "01-02-1964" "01-03-1964" "01-04-1964" "01-05-1964" "01-06-1964" "01-07-1964" "01-08-1964" "01-09-1964" 
[10] "01-10-1964" "01-11-1964" "01-12-1964" 
+1

尝试'seq(as.Date(“1964-01-01”),as.Date(“1964-12-01”),“month”)' –

+0

@ r2evans帮助我,格式化(.. .....,format = ...) –

回答

1

help(as.Date)

格式:一个字符串。如果未指定,则会在第一个非'NA'元素上尝试''%Y-%m-%d''',然后''%Y /%m /%d''。

对于调试,它会一直翔实的尝试:

as.Date("01/01/1964") 
## [1] "0001-01-19" 

从中你可以也很快推断出这是正确地识别你的领域。

如果你有在你的开始/结束日期格式控制,后来干脆改:

seq(as.Date("1964/01/01"), as.Date("1964/12/01"), "months", format = "%d%m%Y", tz = "UTC") 
## [1] "1964-01-01" "1964-02-01" "1964-03-01" "1964-04-01" "1964-05-01" "1964-06-01" 
## [7] "1964-07-01" "1964-08-01" "1964-09-01" "1964-10-01" "1964-11-01" "1964-12-01" 

虽然format=参数不工作(seq不使用它)。包住整个事情与format让你似乎要添加的字符串,虽然认识到,这些将不再是Date类:

format(seq(as.Date('1964/01/01'), as.Date('1964/12/01'), 'months'), format="%Y%m%d", tz="UTC") 
## [1] "19640101" "19640201" "19640301" "19640401" "19640501" "19640601" "19640701" 
## [8] "19640801" "19640901" "19641001" "19641101" "19641201" 

但是,如果你不拥有控制权开始的格式/停止日期,然后(如果需要的话和tz=)添加format=参数到每个as.Date

seq(as.Date('01/01/1964', format='%d/%m/%Y'), as.Date('01/12/1964', format='%d/%m/%Y'), 'months') 
## [1] "1964-01-01" "1964-02-01" "1964-03-01" "1964-04-01" "1964-05-01" "1964-06-01" 
## [7] "1964-07-01" "1964-08-01" "1964-09-01" "1964-10-01" "1964-11-01" "1964-12-01" 

并使用format如上,如果需要的话。

+0

我等待的结果是:[1]”01-01-1964“”01-02-1964“”01-03-1964“”01-04-1964“... .etc 是巴西的日期格式 –

+0

不格式(...,format =“%d-%m-%Y”,tz =“UTC”)'为你工作? – r2evans

+0

是的,谢谢,我忘了在“%”之后加上“ - ”,起作用 –

0

在基R A溶液是

my.format <- "%d/%m/%Y" 
seq(as.Date("01/01/1964", format = my.format), 
    as.Date("01/12/1964", format = my.format), 
    "months") 

基本上,你错过了"/"

此外,正如指出的那样,使用日期的ISO标准符号(例如YYYY-MM-DD)简化了很多。

+0

我等待的结果是: [1]“01-01-1964”“01-02-1964”“01-03-1964”“01-04 -1964“....等 –

相关问题