【问题标题】:Converting numbers back to Date object in R [duplicate]将数字转换回R中的日期对象[重复]
【发布时间】:2022-01-02 14:36:55
【问题描述】:

我正在使用函数readxl::read_excel() 读取Excel 文件,但似乎无法正确读取日期。

在原始文件中,一个这样的日期是2020-JUL-13,但它被读取为44025

有什么方法可以找回原始文件中的原始日期变量吗?

非常感谢任何指针。

谢谢,

【问题讨论】:

    标签: r excel readxl


    【解决方案1】:

    基本上,你可以尝试使用:

    as.Date(44025)
    

    但是,您会注意到Error in as.Date.numeric(44025) : 'origin' must be supplied 的错误。这意味着您只需要知道来源,即开始计数的开始日期。当您检查 Bappa Das 提到的 convertToDate 函数的帮助页面时,您会看到它只是 as.Date() 函数的包装器,origin 参数的默认参数是 "1900-01-01"

    接下来,您可以通过在 Excel 中查找日期系统来检查为什么会这样,这里有一个页面:

    Date systems in Excel

    哪里有关于 Windows(Mac 有一些例外)开始日期确实是 "1900-01-01" 的信息。

    现在,最后,如果你想使用 base R,你可以这样做:

    as.Date(44025, origin = "1900-01-01")
    

    这是矢量化函数,因此您也可以传递整列。

    【讨论】:

      【解决方案2】:

      您可以使用openxlsx 包将数字转换为日期,例如

      library(openxlsx)
      
      convertToDate("44025")
      

      或者转换整个列可以使用

      convertToDate(df$date)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-05
        • 2011-10-25
        • 1970-01-01
        • 2019-01-18
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        • 2023-03-11
        相关资源
        最近更新 更多