【问题标题】:Change date format in r with as.Date [duplicate]用 as.Date 更改 r 中的日期格式 [重复]
【发布时间】:2020-04-29 10:58:08
【问题描述】:

我得到了一个大数据集,其中一列是因子格式的日期。 我想将此更改为日期格式,并使用 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 的任何想法?

谢谢!

【问题讨论】:

  • 它对我来说很好用。我认为这可能是语言环境问题。你的语言环境是什么?
  • 丹麦。所以现在我已经将语言环境更改为全英文,并且代码正在运行。谢谢!
  • 如果您不想更改语言环境,因为这会影响整个 sessoin,那么 R 确实提供了一个始终为英文的 month.abbdates2 &lt;- gsub("([A-Z]+)", ":\\1:", dates); d &lt;- read.table(text = dates2, as.is = TRUE, sep = ":");; with(d, ISOdatetime(V3, match(V2, toupper(month.abb)), V1, V4, V5, V6))

标签: r date-formatting


【解决方案1】:

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

Sys.getlocale()

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

Sys.setlocale(locale = "en_US")

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 2014-04-07
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多