我有一个名为month的数据列,我想将其转换为日期格式
在电子表格中,它是Mar-07
的形式但是当我尝试使用以下方法在R中转换它时
mydata$month<-as.Date(mydata$month, format = "%b-%y")
我得到了NAs
我哪里错了?感谢
答案 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"