在R中格式化日期(年-月)

7

是否可以将以下数字格式化为“年-月”格式:

1402 1401 1312

即表示2014年2月,2014年1月和2013年12月。

我尝试了以下方法:

date <- 1402
date <- as.Date(as.character(date), format = "%y%m")

但是我得到了一个NA作为输出。
3个回答

17

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"

1

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

1

你需要包含日期数字,否则无法理解你想要的是这个月的哪一天,考虑:

> strptime('011402', format = "%d%y%m")
[1] "2014-02-01"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接