将“2017年9月”转换为日期

时间:2017-10-09 16:33:41

标签: r date datetime

对于另一个日期问题感到抱歉,但我找不到答案。 我有一个日期类型“2017年9月”,需要将其转换为“30.09.2017”(月的最后一天 - 所有年份的所有月份)。 我试过了:

date <- as.Date(date), "%B %d %Y")

+%d%m%y的变化

那:

library(zoo)
date <- as.Date(as.yearmon(date))

但每次我都有NA

1 个答案:

答案 0 :(得分:2)

这对我有用:

> library(zoo)
> s = "September 2017"
> as.yearmon(s)
[1] "Sep 2017"

如果我转换为日期,它将获得本月的第一天:

> as.Date(as.yearmon(s))
[1] "2017-09-01"

这似乎正是你正在做的事情,但你没有明确地告诉我们你的“2017年9月”字符串在哪里,所以我怀疑那里有问题......

关于“30日”,你对2月份要做什么?您可以使用frac=1来获取该月的最后一天(帽子提示@Henrik):

> as.Date(as.yearmon(s),frac=1)
[1] "2017-09-30"
> as.Date(as.yearmon("February 2018"),frac=1)
[1] "2018-02-28"
> as.Date(as.yearmon("February 2020"),frac=1)
[1] "2020-02-29"