使用 as.Date 更改 r 中的日期格式

Change date format in r with as.Date

我得到了一个大数据集,其中一列是因子格式的日期。 我想将其更改为日期格式,并使用 as.Date

ID <- c(1,2,3,4,5)
dates <- as.factor(c('20OCT2008:00:00:00', '18NOV2008:00:00:00', '05JUN2009:00:00:00', '03MAY2009:00:00:00', '10APR2009:00:00:00'))
df  <- data.frame(ID, dates)

df$dates = as.Date(df$dates, format='%d%b%Y:%H:%M:%S')

df
  ID      dates
1  1       <NA>
2  2 2008-11-18
3  3 2009-06-05
4  4       <NA>
5  5 2009-04-10

但是,只有一些日期发生了变化,而其余日期则为 NA。 关于如何成功转换所有日期或为什么我的 NA 出现的任何想法?

谢谢!

这可能是由于您在系统上使用的区域设置(语言)所致。是英文还是别的?你可以通过以下方式解决这个问题:

Sys.getlocale()

如果不是英文,您可能需要将其设置为英文和运行相同的命令:

Sys.setlocale(locale = "en_US")

在某些情况下,如果您是从电子表格导入,则可能是日期前后一些白色 space 的问题...trimws() 可用于去除白色 space 在字符串的开头或结尾。