我想友好地提出一个关于将数字数据转换为日期格式的问题。
我想转换数字数据,如:
time1<-c(715, 1212, 0416)
到
July-2015, Dec-2012, Apr-2016
我已尝试过这些代码,但它无效。
time2<-as.Date(as.character(time1), format="%m%y")
有没有人有想法解决这个问题?
答案 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
。在这里,数字输入需要转换为前导零的字符串,以便月份从01
到12
:
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"