【发布时间】:2021-02-11 09:28:47
【问题描述】:
我正在尝试将包含 UNIX 值(整数)的 hadoop 数据中的列转换为 R 中的 POSIXct 格式。我正在使用以下代码:
hadoop$time <- as.POSIXct(hadoop$time, origin="1970-01-01")
但是,当我使用 as.POSIXct 时,出现以下错误:
Error in as.POSIXct.default(hadoop$time, origin="1970-01-01") : do not know how to convert 'hadoop$time' to class "POSIXct"
我的列时间值示例如下:
integer64
[1] 1606851081 1606851075 1606851065 1606850993 1606850976 1606823547
如果我通过 Epoch 日期转换器输入这些值之一,它会返回一个有效的日期时间。我已经尝试过这里发布的多种解决方案,例如使用“as_datetime”函数或“anytime”包。示例代码:
hadoop$time <- anytime(hadoop$time)
hadoop$time <- as_datetime(hadoop$time)
但是,这些尝试也没有成功。不知道我在这里做错了什么,希望有人能帮助我。
一些添加的上下文:我在 Databricks 的笔记本中运行它。
【问题讨论】:
-
您使用的是
as.POSIXct(x, origin="1970-01-01")还是真的as.POSIXct.default(x, origin="1970-01-01")?一般来说,你应该在 Stack Overflow 上提出 reproducible 的问题,请阅读:stackoverflow.com/a/5963610/6574038 -
嗨@jay.sf,感谢您指出这一点。我已经相应地编辑了我的问题。希望这能让它更清楚。
-
我确定您忽略了链接中的可重现数据部分。只需使用
dput提供您的 integer64 向量。
标签: r datetime-format unix-timestamp