R日期格式,如何更改日期格式为2011年6月1日

Eva*_*Eva 4 format r date

我想以2011年6月1日的2011格式来表达2011-06-01的格式

我怎样才能做到这一点?

Dir*_*tel 5

一种方法是编写自己的例程,将'st','nd','rd','th'后缀为标准函数strftime()和/或format().

编辑:这是草稿:

R> datesuffix <- function(dom) { switch(as.character(dom), 
+                                       "1"="st", "2"="nd", 
+                                        "3"="rd", "th") }
R> nicedate <- function(d) { dlt <- as.POSIXlt(d); 
+                            paste(format(dlt, "%Y %B %e"),
+                                  datesuffix(dlt$mday), sep="") }
R> nicedate(Sys.Date())
[1] "2011 June  9th"
R> nicedate(as.Date("2011-06-01"))
[1] "2011 June  1st"
Run Code Online (Sandbox Code Playgroud)

编辑2我想你想要重新排序日期字符串.我在北美待了太久......

R> nicedate <- function(d) { dlt <- as.POSIXlt(d); 
+                            paste(as.character(dlt$mday), 
+                                  datesuffix(dlt$mday),
+                                  format(dlt, " %B %Y"), sep="") }
R> nicedate(as.Date("2011-06-01"))
[1] "1st June 2011"
R> nicedate(as.Date("2011-06-02"))
[1] "2nd June 2011"
R> nicedate(Sys.Date())
[1] "9th June 2011"
R> 
Run Code Online (Sandbox Code Playgroud)

编辑3必须先纠正datesuffix()才能转换为char.