【问题标题】:as.Date will not retain dates from my raw dataas.Date 不会保留我的原始数据中的日期
【发布时间】:2021-08-30 17:11:47
【问题描述】:

我将 as.Date 用于我拥有的数据集,其中日期作为我在图表的 x 轴上使用的变量。我一切都很好,图形输出也很好,但是发生了一些事情,现在缺少日期和格式,例如 %Y 和 %d 不起作用!

有人可以帮我弄清楚如何正确输入数据吗?


IHS <- read.csv("IHS 20-21.csv")
IHS$Start.Date <- as.Date(IHS$Start.Date)

这是我正在使用的代码。如果您需要更多信息,我可以分享更多信息,不确定哪些代码在这里会有所帮助,但这两行是问题所在。如果我输入数据并检查环境,表格看起来很好。但是当我添加 as.Date 时,它​​开始丢失日期。

日期在 excel 列中如下所示: excel dates

我正在尝试以 YYYY/MM/DD 格式获取日期,但只要数据都在那里,我对任何格式都很满意!

【问题讨论】:

  • as.Date(IHS$Start.Date, format = "%m/%d/%Y") 可能工作。但这可能不取决于您的图像中看到的是原始值还是其他内容之上的蒙版。如果您能向我们展示dput(head(IHS$Start.Date)) 的结果,我们可以更确定地回答。
  • 谢谢,当我使用代码 dput(head(IHS$Start.Date)) 这是输出:结构(c(-715917,NA,NA,-715825,-715613,NA ), class= "日期")
  • 这个帖子可能对stackoverflow.com/a/43230524/10276092有帮助
  • @M.Viking 谢谢,我有点不知道线程所说的起源是什么?那会是 Excel 工作表列中的第一个日期吗?

标签: r date as.date


【解决方案1】:

根据结构列为 c(-715917, NA, NA, -715825, -715613, NA) 的 cmets,在我看来,您的日期是作为参考原点 1-1 的 unix 纪元时间出现的-1970 年。您可以使用lubridate进行转换。

例子:

library(lubridate)
lubridate::as_date(c(-715917, NA, NA, -715825, -715613, NA))

[1] "9-11-20"  NA         NA         "10-02-20" "10-09-20" NA  

要构造 YYYY-MM-DD,请使用 ymd():

library(lubridate)
IHS$Start.Date <- ymd(as_date(c(-715917, NA, NA, -715825, -715613, NA)))

https://cran.r-project.org/web/packages/lubridate/index.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-24
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多