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