【问题标题】:How to convert numeric numbers to time stamp using R如何使用 R 将数字转换为时间戳
【发布时间】:2021-01-10 06:26:02
【问题描述】:

我用过这个脚本

 df?timestamp< as.POSIXct(df$timestamp,tz="",format="%Y%m%d%H%M%S",origin = "1970-01-01")

然后我得到 NA。

我的号码是 43466.10,我应该得到的结果是 2019-01-01 02:17:26。

我该怎么办?

【问题讨论】:

  • 您确定origin 吗? as.POSIXct(43466.10, origin = '1970-01-01')

标签: r datetime timestamp numeric


【解决方案1】:

事实上,43466.10 不是一个有效的 Unix 纪元时间。请参阅https://en.wikipedia.org/wiki/Unix_time 了解更多信息。

这个数字看起来像一个 Excel 日期/时间值。如果确实如此,那么“2019-01-01 02:17:26”实际上是 43466.0954398148,您应该使用的原点是“1899-12-30”,而不是“1970-01-01”。

在这种情况下,您不能直接使用as.POSIXct,因为 UNIX 纪元时间是在计算 ,但 Excel 日期/时间值是在计算 days。。 p>

您可以使用包openxlsx 进行此转换。试试这个:

# install.packages("openxlsx")
df$timestamp <- openxlsx::convertToDateTime(df$timestamp, origin = "1899-12-30")

【讨论】:

  • 完美!!谢谢。
猜你喜欢
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
相关资源
最近更新 更多