在R中更改为日期格式

时间:2014-03-19 17:18:37

标签: r date

我有一个名为month的数据列,我想将其转换为日期格式

在电子表格中,它是Mar-07

的形式

但是当我尝试使用以下方法在R中转换它时

mydata$month<-as.Date(mydata$month, format = "%b-%y")

我得到了NAs

我哪里错了?感谢

2 个答案:

答案 0 :(得分:2)

zoo包有一个类yearmon,可以表示每月数据。这个类有一个as.Date方法。

library(zoo)

ym <- as.yearmon("Mar-07", "%b-%y")
str(ym)
# Class 'yearmon'  num 2007

yearmon对象转换为类Date

date <- as.Date(ym)
date
# [1] "2007-03-01"

str(date)
# Date[1:1], format: "2007-03-01"

frac参数可用于表示月份的一小部分。默认frac为0,即上个月的第一天,如上所述。

as.Date(ym, frac = 0.5)
# [1] "2007-03-16"

as.Date(ym, frac = 1)
# [1] "2007-03-31"

答案 1 :(得分:1)

这是一种解决方法:

dts <- paste(c("Jan", "Feb", "Mar"), "07", sep="-")
# [1] "Jan-07" "Feb-07" "Mar-07"
as.Date(paste0("1", dts), format = "%d%b-%y")
# [1] "2007-01-01" "2007-02-01" "2007-03-01"