【问题标题】:%b-%Y date conversion gives NA [duplicate]%b-%Y 日期转换给出 NA [重复]
【发布时间】:2018-11-19 18:29:29
【问题描述】:

我正在尝试将字符串转换为 R 中的日期。这些是字符串的示例:

“1973 年 8 月”“1974 年 8 月”“1975 年 8 月”“1976 年 8 月”“1977 年 8 月”

我在与上面类似的日期字符串上运行以下行:

exportsDF$Date <- as.Date(as.character(exportsDF$Date), format = "%b-%Y")

这将返回所有值的 NA。我将日期列转换为字符的步骤返回正确的值。为什么 as.Date() 命令不起作用的任何想法?数据中没有 NA 或缺失值。每个值都有一个“%b-%Y”格式。

感谢任何帮助!

【问题讨论】:

    标签: r date as.date


    【解决方案1】:

    日期格式需要一天,因此您可以添加一个月中的任意一天。在这里,我选择了第一天:

    dates <- c("Aug-1973", "Aug-1974", "Aug-1975", "Aug-1976", "Aug-1977")
    res <- as.Date(paste0("01-", dates), format = "%d-%b-%Y")
    print(res)
    #[1] "1973-08-01" "1974-08-01" "1975-08-01" "1976-08-01" "1977-08-01"
    

    原因是基础Date 数据类型是一个整数,计算自某个参考日以来的天数。具体来说,自 1970-01-01 以来的天数。见?Date

    Date 对象 res 现在可以通过

    随意显示
    format(res, "%B-%Y")
    #[1] "August-1973" "August-1974" "August-1975" "August-1976" "August-1977"
    

    或类似的。

    month(res) 函数及其表兄弟也很有帮助。见?month

    【讨论】:

      猜你喜欢
      • 2021-12-01
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 2016-07-24
      • 2023-03-08
      • 2021-02-26
      • 2015-07-05
      • 1970-01-01
      相关资源
      最近更新 更多