【问题标题】:Convert number of days since Jan 1 2000 into date format将自 2000 年 1 月 1 日以来的天数转换为日期格式
【发布时间】:2017-10-27 07:55:10
【问题描述】:

我的数据中有一个列是自 2000 年 1 月 1 日以来的天数(这是 0 天)。如何将天数转换为日期格式(2000-01-01)?

Number_of_days    Date
3536              2011-01-03
3537              2011-01-04
3538              2011-01-05
3539              2011-01-06
3540              2011-01-07
3541              2011-01-08

我想在我的 df 中添加一个名为 Date 的新列,类似于上面的列。以上日期的天数只是一个例子。

【问题讨论】:

  • as.Date(0, origin = '2000-01-01')
  • as.Date('2000/01/01') + df$Number_of_days
  • @RuiBarradas nope "/" 一样好。
  • @Sotos 代码有效,但我必须在最后添加(减 1)才能获得正确的日期。 “/”没问题,给了我想要的结果。
  • 啊……好吧。因为你想要一月第一天作为第 0 天......而不是第 1 天。明白了。很高兴我能帮忙

标签: r date data-conversion


【解决方案1】:

您需要as.Dateorigin 参数。使用:

as.Date(3536:3541, origin = '2000-01-01')

给予:

[1] "2009-09-06" "2009-09-07" "2009-09-08" "2009-09-09" "2009-09-10" "2009-09-11"

在您的情况下,您可以使用:

as.Date(df$Number_of_days - 1, origin = '2000-01-01')

或:

as.Date(df$Number_of_days, origin = '1999-12-31')

【讨论】:

  • 这包括我的新列中的 2000-01-01,它将所有转换向下移动一个单元格。但它改变了日子。谢谢
  • @ZmnakoAwrahman 我只是包含了零来显示函数的工作;我现在已经更新了答案
  • 谢谢。我没有写天数范围,而是选择列并减一,因为 2000-01-01 是零天。这段代码对我有用as.Date(df$Number_of_days, origin = '2000-01-01') -1
  • @ZmnakoAwrahman 或as.Date(df$Number_of_days - 1, origin = '2000-01-01')as.Date(df$Number_of_days, origin = '1999-12-31'),我也更新了答案
猜你喜欢
  • 1970-01-01
  • 2012-04-21
  • 2017-01-09
  • 2015-12-29
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多