data.frame的Xts格式

问题描述 投票:0回答:1

我有一个带有2列的数据框。第一列包含POSIXct数据,第二列包含一些样本值整数。我一生都无法弄清楚如何将此数据帧转换为xts。

我的数据:

structure(list(SampleDateTime = list(1422835200000, 1423353600000, 
    1423958400000, 1433030400000, 1433635200000, 1434326400000, 
    1434844800000, 1444521600000, 1445731200000, 1453593600000, 
    1.455408e+12, 1420934400000, 1424563200000, 1425772800000, 
    1426982400000, 1430006400000, 1.431216e+12, 1.440288e+12, 
    1448150400000, 1460851200000), SampleValue = list(9L, 3L, 
    2L, 1733L, 19L, 6L, 1L, 17L, 7L, 23L, 147L, 1L, 17L, 1L, 
    1L, 19L, 1L, 11L, 2L, 91L), Dttm = structure(c(1107216000, 
1107734400, 1108339200, 1117411200, 1118016000, 1118707200, 1119225600, 
1128902400, 1130112000, 1137974400, 1139788800, 1105315200, 1108944000, 
1110153600, 1111363200, 1114387200, 1115596800, 1124668800, 1132531200, 
1145232000), class = c("POSIXct", "POSIXt"), tzone = "")), row.names = c("feature$attributes", 
"feature$attributes1", "feature$attributes2", "feature$attributes3", 
"feature$attributes4", "feature$attributes5", "feature$attributes6", 
"feature$attributes7", "feature$attributes8", "feature$attributes9", 
"feature$attributes10", "feature$attributes11", "feature$attributes12", 
"feature$attributes13", "feature$attributes14", "feature$attributes15", 
"feature$attributes16", "feature$attributes17", "feature$attributes18", 
"feature$attributes19"), class = "data.frame")
> 

我使用它来尝试进行转换:

q <- as.xts(t, order.by = t$Dttm, dateFormat="POSIXct", frequency=NULL, RECLASS=FALSE)

我收到以下错误:coredata.xts(x)中的错误:当前不支持的数据类型

任何帮助表示赞赏。我无法弄清楚为什么它说在文档中说DF不被支持?

r type-conversion xts
1个回答
1
投票

正如注释中指出的那样,您的数据采用一种奇怪的格式,其中数据框的前两列本身就是列表,而不是数字列,因此请先取消列出这些列并给出dat.u,然后进行转换。我们假设dat是问题中通过dput显示的数据。

dat.u <- replace(dat, TRUE, lapply(dat, unlist))
z <- read.zoo(dat.u, index = "Dttm")
x <- as.xts(z)
© www.soinside.com 2019 - 2024. All rights reserved.