首页 > 解决方案 > 格式化 xts 日期和时间 X2020.01.06.06.00.00

问题描述

我有一个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")

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

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

标签: rdatetimexts

解决方案


行名存储在tsxnamed"row.names"和可访问的属性中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")

推荐阅读