r - 将字符转换为日期

标签 r date

我有一个带有以下格式日期的向量:

 dates <- c("01AUG2006","01DEC2006","01JUN2006","01MAY2007")

为了将此向量转换为 Date 类的对象,我编写了以下函数:

convert2Date <- function(x) {
  require(car)
  d <- substr(x,0,2)
  m.text <- substr(x,3,5)
  m <- Recode(m.text, "'JAN'=1 ;'FEB'=2;'MAR'=3;'APR'=4;'MAY'=5;'JUN'=6; 
                       'JUL'=7;'AUG'=8;'SEP'=9;'OCT'=10;'NOV'=11;'DEC'=12")
  y <- substr(x,6,9)
  out <- as.Date(paste(d,m,y,sep="/"),"%d/%m/%Y")
  out
}

使用示例日期变量:

test <- convert2Date(dates)
[1] "2006-08-01" "2006-12-01" "2006-06-01" "2007-05-01"
class(test)
[1] "Date"

这可行,但看起来有点麻烦,并且仅适用于这种特定格式。由于这可能是一个常见问题,因此必须有一种更简单、更通用的方法来做到这一点。有人有什么建议吗?非常感谢!

最佳答案

看起来好像

as.Date(dates,format="%d%b%Y")

工作正常吗?

[1] "2006-08-01" "2006-12-01" "2006-06-01" "2007-05-01"

关于r - 将字符转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23218555/

相关文章:

java - Criteriabuilder 日期比较

r - 通过列索引而不是名称将函数应用于data.table列的子集

r - 查找包含字符序列的字符串,而不管 r 中的顺序

date - PowerShell:从文件夹中选择具有特定名称的文件,然后通过添加当前日期对其进行重命名

java - 从带有偏移值的日期获取时区信息

php - 处理mysql中的日期?

r - 将日期格式化为格式 "%Y-%m"的问题

r - Stata 和 R 中 Logit 回归的不同稳健标准误

R:在向量列表中查找唯一向量

r - 特定日期的子集数据框