将数字数据如“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
。此处,数字输入需要转换为带前导零的字符串,以便月份从 01
到 12
:
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"
我想友好地问一个关于将数字数据转换为日期格式的问题。
我想将数字数据转换为:
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
。此处,数字输入需要转换为带前导零的字符串,以便月份从 01
到 12
:
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"