我的原始 Excel 文件中的日期代表“Jan-01”格式的月度数据。当然,我可以先手动将它们转换为 Excel 中更有用的东西,然后再输入到 R 中。
如何将此类日期转换为 R 中的 Date 类?
如果你想要一个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")
编辑:
最简单的方法是在 zoo 中使用 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
if 选择第二种方法来制作年份向量和月份向量
如果您强制指定该月的第一天,您可以将日期转换为:
datevar <- c("Jan-01","Feb-01","Mar-12")
as.Date(paste("01",datevar,sep="-"),"%d-%b-%y")
应该注意的是,这与 DWin 下面给出的答案基本相同,只是手动指定了日期而不是年份。