2012-04-05 59 views
5

道歉的簡單問題,但我找不到這種類型的日期的幫助。日期形式:20120405

2012年4月5日被保存爲數字爲「20120405」

我如何轉換這種價值觀的載體轉化爲可用的日期?

回答

5

你只需要as.Date功能:

R> x = "20120405" 
R> as.Date(x, "%Y%m%d") 
[1] "2012-04-05" 

看幫助文件:?as.Date,但本質上

  • %Y意味着今年在形式2012,使用%y12
  • %m是月份。
  • %d當天。

如果您的日期有分隔符,比如說2012-04-05,那麼請使用類似於:%Y-%m-%d。或者,你可以使用:

R> strptime(x, "%Y%m%d") 
[1] "2012-04-05" 

特別是,你可以通過日期的矢量這些功能,所以:

R> y = c("20120405", "20121212") 
R> as.Date(y, "%Y%m%d") 
[1] "2012-04-05" "2012-12-12" 
+0

謝謝!並感謝所有! – user1314736 2012-04-05 08:51:22

5

這樣,

(foo <- as.Date("20120405", "%Y%m%d")) 
# "2012-04-05" 

,也許你想format可以打印出月份

format(foo, "%Y %b %d") 
# "2012 Apr 05" 

你可以看看this page

3

隨着strptime,你可以將其轉換爲POSIXlt類以及as.Date您可以使用格式"%Y%m%d"其轉換爲Date類:

strptime("20120405",format="%Y%m%d") 
[1] "2012-04-05" 

as.Date("20120405",format="%Y%m%d") 
[1] "2012-04-05" 

編輯:

如果您的字符爲"20120405"或數字爲20120405,則不太清楚。在後一種情況下,你必須首先轉換爲字符與as.character(20120405)

+0

謝謝!這是我認爲造成問題的數字。 – user1314736 2012-04-05 08:50:05

2

您也可以使用lubridate包:

library(lubridate) 
ymd("20120405")