原始Excel文件中的日期表示格式为“Jan-01”的月度数据。当然,我可以先在Excel中手动将它们转换为更有用的东西,然后将其输入到R.
中如何将此类adate转换为R?
中的Date类答案 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在下面的答案基本相同,只需手动指定日期而不是年份。