【问题标题】:Change factor to Datetime in R将因子更改为 R 中的日期时间
【发布时间】:2018-09-11 07:36:44
【问题描述】:

我有一个因子变量,我想在 Date 中进行转换。当我尝试使用as.Date() 时,它显示了错误:

charToDate(x) 中的错误: 字符串不是标准的明确格式

我的数据是这些:

[1] Aug 31, 2018 Aug 30, 2018 Aug 29, 2018 Aug 28, 2018 Aug 27, 2018 Aug 26, 2018
[7] Aug 25, 2018 Aug 24, 2018 Aug 23, 2018 Aug 22, 2018 Aug 21, 2018 Aug 20, 2018
[13] Aug 19, 2018 Aug 18, 2018 Aug 17, 2018 Aug 16, 2018 Aug 15, 2018 Aug 14, 2018
[19] Aug 13, 2018 Aug 12, 2018 Aug 11, 2018 Aug 10, 2018 Aug 09, 2018 Aug 08, 2018
[25] Aug 07, 2018 Aug 06, 2018 Aug 05, 2018 Aug 04, 2018 Aug 03, 2018 Aug 02, 2018

如何以%d-%m-%Y 格式转换日期?

【问题讨论】:

标签: r date datetime


【解决方案1】:

试试format = "%b %d, %Y":

ss <- c("Aug 31, 2018", "Aug 30, 2018", "Aug 29, 2018", "Aug 28, 2018", "Aug 27, 2018", "Aug 26, 2018")

as.Date(ss, format = "%b %d, %Y")
#[1] "2018-08-31" "2018-08-30" "2018-08-29" "2018-08-28" "2018-08-27"
#[6] "2018-08-26"

有关不同转换规范(例如"%b""%Y" 等)的详细信息,请查看?strptime

顺便说一下,不需要手动将factor转换为character,因为as.Date有一个用于factors的方法,它将factors转换为character向量,参见@987654332 @。

【讨论】:

  • 不行,好像不认识五月和六月。原来是 NA!
【解决方案2】:

将函数中的格式指定为.Date

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

【讨论】:

  • 它给了我很多 NA 和一些好的数据。似乎无法识别一年中的某些月份,例如 5 月和 6 月。
  • 你能告诉我们你在五月和六月的日子是怎样的吗?
  • 格式与其他月份相同。它看起来像:2018 年 5 月 19 日。所有这些的格式都是相同的('"%m %d, %Y"'),但几个月后它变成了 NA。
  • 我可以想象您的语言设置不是英语......因此它无法识别“May” -> 在这里查看更多信息:stackoverflow.com/questions/17031002/…
  • 你是对的!是意大利语的!我解决了这个问题,只需在控制台中获取 'Sys.setlocale("LC_TIME", "English")' !非常感谢!
【解决方案3】:

我已经解决了将此代码Sys.setlocale("LC_TIME", "English") 输入控制台的问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-14
    • 2020-10-22
    • 2019-10-02
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    相关资源
    最近更新 更多