2014-04-29 28 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「....等 –

相關問題