2012-02-17 87 views
3

如何將以下字符變量轉換爲日期?將「2008年1月」轉換爲日期變量

strDates <- c("Jan.2008", "Feb.2008") 
str(strDates) 
chr [1:2] "Jan.2008" "Feb.2008" 

dates <- as.Date(strDates, "%b %Y") 
str(dates) 
Date[1:2], format: NA NA 

任何援助將不勝感激

+1

如果你正在處理的幾個月並沒有真正日期,您可能會更好使用yearmon類定位d在動物園包中,在這種情況下,您不必首先處理當月的日子:'as.yearmon(strDates,「%b。%Y」)' – 2012-02-17 13:49:42

回答

1

一個Date需要一天元素一樣,所以你可以添加到輸入字符串paste

full.dates <- paste("01", strDates, sep = ".") 

正確指定方案,包括分隔標記:

as.Date(full.dates, "%d.%b.%Y") 
[1] "2008-01-01" "2008-02-01" 
+0

非常感謝 – MikeTP 2012-02-17 05:14:01

2

要形成有效的「日期」,您也需要一天的時間少了點,你的數據。所以我們加一個,我們只需使用任意一天的(這裏:每月的第一個):

R> strDates <- c("Jan.2008", "Feb.2008") 
R> strptime(paste("01", strDates), "%d %b.%Y") 
[1] "2008-01-01" "2008-02-01" 
R> 
+0

非常感謝。 – MikeTP 2012-02-17 05:12:34

+0

任何人都知道'lubridate'是否有任何轉換函數,假設在沒有日期字段的情況下「day = 1」? – 2012-02-17 13:25:15

相關問題