有一个包含两列的矩阵:年和月
dates.m
1492 April
1492 August
1492 October
如何将这两个变量转换为日期格式变量(例如mm/yyyy
)?谢谢。
这个怎么样:
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"
说到约会,我喜欢使用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="-"))