将变量转换为R中的日期

时间:2015-06-09 14:05:23

标签: r datetime

有一个矩阵有两列:年和月

dates.m
1492 April
1492 August
1492 October

如何将这两个变量转换为日期格式变量(例如mm/yyyy)?感谢。

2 个答案:

答案 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="-"))