【问题标题】:Trouble with as.Dateas.Date 有问题
【发布时间】:2018-05-09 10:52:17
【问题描述】:

我目前有以下格式的日期数据:DDMMYYYY

我想使用以下方法将日期转换为正确的日期函数(我怀疑我需要将时间数据可视化):

data$DATE<-as.Date(as.character(data$DATE), "%d%m%Y")

这很好,但是只有个位数的日子会导致我得到 NA 结果,因为前面没有 0。

例子:

17042018  = 2018-05-10
 5022018  = NA

什么是变通方法?我应该在字符少于 8 个的情况下粘贴 0 吗?

我对 R 很陌生,但如果你能把我送到正确的方向,那将不胜感激!

问候, G

【问题讨论】:

  • 请给我们一些示例数据。
  • 嗨,蒂姆,我复制了前两个实例,一个有效,一个无效。如您所见,第二个实例前面缺少一个 0

标签: r as.date


【解决方案1】:

用零填充字符串直到长度为 8,然后转换:

a <- '5102017'
a <- sprintf('%08d', as.numeric(a))
as.Date(a, "%d%m%Y")

或者,在您的示例中:

data$DATE <- as.Date(sprintf('%08d', as.numeric(data$DATE)), "%d%m%Y")

您可能需要转换初始的data$DATE,这取决于您的出发点

【讨论】:

  • 感谢 GGamba。这是我最初的想法。会试一试
  • 我要注意atm数据保存为整数
  • 更好:只需使用as.Date(sprintf('%08d', data$DATE), "%d%m%Y")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
  • 1970-01-01
相关资源
最近更新 更多