将数字数据(例如“715”)转换为R中的日期“2015年7月”

时间:2016-11-21 16:18:29

标签: r date numeric

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

我想转换数字数据,如:

time1<-c(715, 1212, 0416)

July-2015, Dec-2012, Apr-2016

我已尝试过这些代码,但它无效。

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

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

2 个答案:

答案 0 :(得分:2)

尝试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

答案 1 :(得分:2)

部分问题是“2015年7月”,“2012年12月”和“2016年4月”不是自特定日期缺失以来的日期。另一种方法是转换为zoo::yearmon。在这里,数字输入需要转换为前导零的字符串,以便月份从0112

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

结果是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"