将mm-yy字符串“Jan-01”转换为日期格式

时间:2012-05-18 03:55:05

标签: r date

原始Excel文件中的日期表示格式为“Jan-01”的月度数据。当然,我可以先在Excel中手动将它们转换为更有用的东西,然后将其输入到R.

如何将此类adate转换为R?

中的Date类

3 个答案:

答案 0 :(得分:8)

如果您需要date课程,请使用as.Date:

x <- "Jan-01"
as.Date(paste("01-", x, sep = ""), format = "%d-%b-%y")

如果您需要POSIXct课程,请考虑使用lubridate

library(lubridate)
x <- "Jan-01"
dmy(paste("01-", x , sep =""))

如果您只想依靠base

x <- "Jan-01"
as.POSIXct(paste("01-", x, sep = ""), format = "%d-%b-%y")

答案 1 :(得分:3)

编辑:

最简单的方法是在动物园中使用yearmon类:

 require(zoo)
 as.yearmon(x, "%b-%y")
#[1] "Jan 2001"

更长的方法:

 x="Jan-01"
 xs<-strsplit(x, "-")
 xd <- as.Date( xs[[1]][2], paste( xs[[1]][1], "01",  sep="-"), format="%y-%b-%d")
 xd
#[1] "2001-01-01"

如果你想处理一串日期,那么你可能需要使用sapply,如果选择第二种方法来制作年的向量和几个月的向量

答案 2 :(得分:0)

如果您强行指定当月的第一天,则可以将日期转换为:

datevar <- c("Jan-01","Feb-01","Mar-12")
as.Date(paste("01",datevar,sep="-"),"%d-%b-%y")

应该注意的是,这与DWin在下面的答案基本相同,只需手动指定日期而不是年份。