将“ 2014-05”转换为日期格式为“ May 2015”,以在R中的ggplot中显示

时间:2018-07-15 09:32:38

标签: r ggplot2

我具有此字符格式“ 2017-03”的日期,我想在“ 2017年3月”中将其转换为R中的ggplot中显示。但是当我尝试使用as.Date(“ 2017-03” ,“%Y-%m”)给出NA

2 个答案:

答案 0 :(得分:4)

您可以考虑将zoo::as.yearmon函数用作:

library(zoo)

#Sample data
v <- c("2014-05", "2017-03")

as.yearmon(v, "%Y-%m")
#[1] "May 2014" "Mar 2017"

#if you want the month name to be in full. Then you can format yearmon type as
format(as.yearmon(v, "%Y-%m"), "%B %Y")
#[1] "May 2014"   "March 2017"

答案 1 :(得分:1)

来回解析日期可以这样进行:

您提到的那个是通过引用MKR来完成的: 使用动物园包裹

library(zoo)
date <- "2017-03"
as.yearmon(date, "%Y-%m")
#[1] "Mar 2017"
format(as.yearmon(date, "%Y-%m"), "%B %Y")
#[1] "March 2017"

如果您想将2017年3月或其他类似格式解析回2017-03,请执行以下操作: 使用hms包,因为基R不能为日期提供一个不错的内置类

library(hms)
DATE <- "March 1 2017"
parse_date(DATE, "%B %d %Y")
#[1] "2017-03-01"

或者如果您使用外语来解析日期:

foreign_date <- "1 janvier 2018"
parse_date(foreign_date, "%d %B %Y", locale = locale("fr"))
#[1] "2018-01-01"

通过使用locale = locale(“ language”),您可以将带有外国月份名称的日期解析为标准日期。使用它来检查语言:

date_names_langs()

-格式:

-年:%Y(4位)%y(2位; 00-69-> 2000-2069,70-99-> 1970-1999)

-月:%m(2位数字),%b(缩写:Jan),%B全名,一月

-天:%d(2位数字)