【问题标题】:Formating xts date & time X2020.01.06.06.00.00格式化 xts 日期和时间 X2020.01.06.06.00.00
【发布时间】:2020-06-27 11:11:27
【问题描述】:

我有一个 xts 表 all.transactions 显示:

structure(list(Quantity = c(0, 162000, 149000, -149000)), row.names = c("X2020.01.06.06.00.00", 
"X2020.01.10.15.00.00", "X2020.02.03.15.00.00", "X2020.02.03.15.00.00.1"
), class = "data.frame")

我注意到当有两条记录同时存在时,XTS 表的索引往往会从2020-01-06 06:00:00 变为X2020.01.06.06.00.00

请问有没有一种快速的方法可以将其格式化/转换回正常 (2020-01-06 06:00:00)?

【问题讨论】:

  • 请提供可重现的示例。你如何到达 xts 表? aka 输入是什么?
  • 您能以dput 格式发布示例数据吗?请使用dput(all.transactions) 的输出编辑问题。或者,如果 dput(head(all.transactions, 20)) 的输出太大。
  • 大家好,抱歉,我不知道那个dput工具,刚刚发现,谢谢。
  • 时间序列中的重复时间没有意义,您希望重复发生什么?
  • jay.sf,您之前的解决方案有效。谢谢!

标签: r datetime xts


【解决方案1】:

行名存储在名为"row.names"tsx 属性中,并可通过attr() 访问。所以一种方法是将这些属性格式化为时间格式。

attr(tsx, "row.names") <- as.character(strptime(attr(tsx, "row.names"), 
                                                format="X%Y.%m.%d.%H.%M.%S"))

但是,问题在于具有重复行名的时间序列无效。但也许这个解决方案适用于您的真实数据。


数据

tsx <- structure(list(Quantity = c(0, 162000, 149000, -149000)), row.names = c("X2020.01.06.06.00.00", 
"X2020.01.10.15.00.00", "X2020.02.03.15.00.00", "X2020.02.03.15.00.00.1"
), class = "data.frame")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多