是否可以将以下数字格式化为“年-月”格式:
1402 1401 1312
即表示2014年2月,2014年1月和2013年12月。
我尝试了以下方法:
date <- 1402
date <- as.Date(as.character(date), format = "%y%m")
但是我得到了一个NA作为输出。
zoo包有一个"yearmon"
类,可以直接处理年/月对象:
library(zoo)
nums <- c(1402, 1401, 1312)
ym <- as.yearmon(as.character(nums), "%y%m")
给予:
> ym
[1] "Feb 2014" "Jan 2014" "Dec 2013"
as.Date
需要完整的日期,包括指定的日子。由于您没有包括日期,它不知道该怎么做。
您可以添加任何一天,就像这样工作
date <- 140201
date <- as.Date(as.character(date), format="%y%m%d")
lubridate
包来更轻松地处理日期。> library(lubridate)
> month(ymd(as.character(140201), label=TRUE)
[1] February
你需要包含日期数字,否则无法理解你想要的是这个月的哪一天,考虑:
> strptime('011402', format = "%d%y%m")
[1] "2014-02-01"