将数据表列转换为xts

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

我有一个数据表,现在我想使用datatable语法在xts中进行一些计算。我的第一个问题是,如果通常建议这样做,这意味着如果两个包很好地协同工作。另一种方法是将数据表转换为xts,并在我计划用xts进行转换后将其转换回来。

以下简单的DT说明了我的问题:

library(data.table)
dataset <- data.table(ID=c(rep("A",4416),rep("B",4416)),
x = c(rnorm(2208*2)), time=c(seq(as.Date("1988/03/15"),
as.Date("2000/04/16"), "day"),seq(as.Date("1988/03/15"),
as.Date("2000/04/16"), "day")))
dataset

library(xts)
dataset[,x_xts := NULL]
dataset[,x_xts := xts(x,order.by = time),by=ID]
dataset # this looks fine
str(dataset) # this throws an error

1)你能推荐在数据表中使用xts吗?

2)如果没有,你会建议将数据表转换为xts然后再转换回来吗?

为了提供更多信息,我想估计面板中​​每个单元的ARIMA模型,这就是我想要使用xts的原因。谢谢。

r datatable xts
1个回答
1
投票

我认为这个str(dataset)错误它与strdata.tablexts的组合更相关

如果你使用来自glimpse的替代函数dplyr或进行其他操作,它可以正常工作:

library(dplyr)
glimpse(dataset)

##Examples
cor(dataset$x,dataset$x_xts)
lm(formula = x~x_xts, data=dataset)
dataset[, A:=x_xts*x]

无论如何,如果你感觉更舒服,你也可以使用as.xts.data.table功能:https://www.rdocumentation.org/packages/data.table/versions/1.12.0/topics/as.xts.data.table

© www.soinside.com 2019 - 2024. All rights reserved.