有一个矩阵有两列:年和月
dates.m
1492 April
1492 August
1492 October
如何将这两个变量转换为日期格式变量(例如mm/yyyy
)?感谢。
答案 0 :(得分:1)
这个怎么样:
dates.m<-data.frame(dates.m,stringsAsFactors=F)
dfl=split(dates.m,1:nrow(dates.m))
dates.m$data=do.call(rbind,lapply(dfl,function(rn)
paste(as.Date(paste(paste(rn,collapse = "/"),"01",sep="/"),"%Y/%b/%d"),sep="")))
dates.m$data
[,1] 1 "1492-04-01" 2 "1492-08-01" 3 "1492-10-01"
答案 1 :(得分:1)
说到日期,我喜欢使用lubridate
套餐。这里是解决此问题的示例代码,如果您有一个包含数据的列(假设您的数据按年 - 月 - 日的方式排序 - 否则更改函数名中字母的顺序):
require(lubridate)
df$date<-ymd(df$dates.m)
或者如果您将它们放在单独的列中:
require(lubridate)
require(stringr)
df$date<-ymd(str_c(as.character(df$Year),as.character(df$Month),
as.character(df$Day),sep="-"))