【发布时间】:2014-03-21 21:49:33
【问题描述】:
是否可以将以下数字格式化为年月 我的条目如下:
1402 1401 第1312章
表示 2014 年 2 月、2014 年 1 月和 2013 年 12 月。
我试过了:
date <- 1402
date <- as.Date(as.character(date), format = "%y%m")
但我得到一个 NA 作为输出。
【问题讨论】:
是否可以将以下数字格式化为年月 我的条目如下:
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"
【讨论】:
您需要包含天数,否则无法理解您想到的月份中的哪一天,请考虑:
> strptime('011402', format = "%d%y%m")
[1] "2014-02-01"
【讨论】:
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
【讨论】: