Формат даты R, как я могу изменить формат даты как 1 июня 2011 - PullRequest
4 голосов
/ 09 июня 2011

Я хотел бы выразить 2011-06-01 как формат 2011 1 июня

Как я могу это сделать?

1 Ответ

5 голосов
/ 09 июня 2011

Один из способов - написать собственную процедуру для суффикса '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"

Редактировать 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> 

Редактировать 3 Пришлось исправить datesuffix(), чтобы сначала преобразовать в символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...