将数字数据如“715”转换为R中的Date "July-2015"

Convert numeric data such as "715" into Date "July-2015" in R

我想友好地问一个关于将数字数据转换为日期格式的问题。

我想将数字数据转换为:

time1<-c(715, 1212, 0416)

July-2015, Dec-2012, Apr-2016

我试过这些代码,但它不起作用。

time2<-as.Date(as.character(time1), format="%m%y")

有没有人有解决这个问题的想法?

尝试 lubridate::parse_date_time():

library(lubridate)
time2 <- parse_date_time(time1, orders = "my")
format.Date(time2, "%b-%Y")
[1] "juil.-2015" "déc.-2012"  "avril-2016" # my locale lang is French

部分问题是 "July 2015"、"December 2012" 和 "April 2016" 不是日期,因为缺少特定日期。另一种方法是转换为 zoo::yearmon。此处,数字输入需要转换为带前导零的字符串,以便月份从 0112:

library(zoo)
ym <- as.yearmon(sprintf("%04d",time1),format="%m%y")
ym
##[1] "Jul 2015" "Dec 2012" "Apr 2016"

结果是 class yearmon,然后可以将其强制转换为 Date:

class(ym)
##[1] "yearmon"
d <- as.Date(ym)
d
##[1] "2015-07-01" "2012-12-01" "2016-04-01"
class(d)
##[1] "Date"