【问题标题】:Convert column of Unix to date time将 Unix 的列转换为日期时间
【发布时间】:2018-02-11 01:23:09
【问题描述】:

尝试将一整列的​​ Unix 转换为 R 中的日期时间。我已经能够使用

as.POSIXlt(x, origin = "1970-01-01")

转换 Unix。但现在我正在尝试使用以下方法将一整列 Unix 转换为日期时间:

as.POSIXct(x$time, origin="1970-01-01")

这给了我:

as.POSIXlt.character(as.character(x), ...) 中的错误: 字符串不是标准的明确格式`

最好的方法是什么?

【问题讨论】:

  • 我只在尝试转换“秒纪元”时使用origin,尽管在这里使用它并不是错误。这种方式没问题,但是报错说明列中至少有一个元素格式不正确,用as.POSIXct(c("1970-02-03","aa"), origin="1970-01-01")可以看出。
  • 据我所知,as.POSIXct 应该已经被矢量化,并且您的呼叫应该可以正常工作。可能你的数据有问题。
  • 请提供x的一些示例值
  • 试试structure(x, class = c('POSIXct', 'POSIXt')),打印出来会不会出错?如果没有,请尝试as.POSIXlt(structure(x, class = c('POSIXct', 'POSIXt')))
  • @harkintr,您的至少一项数据有问题。您对数据的至少一项假设是不正确的。这种错误不会发生在负数、NA 或其他类型的numeric 上,所以很明显它不是numeric。这意味着你要么有factor 要么有character,在这种情况下你需要找出你的哪个字符串是错误的。如果您提供数据样本(如 MichaelChirico 建议的那样),也许我们可以帮助您 (1) 找出哪些元素是错误的,然后 (2) 如何处理/修复它们。

标签: r datetime unix


【解决方案1】:
as.POSIXct(as.numeric(x$time), origin="1970-01-01")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2020-12-23
    • 2016-04-24
    • 2012-07-04
    • 1970-01-01
    相关资源
    最近更新 更多