我有一个数据表,现在我想使用数据表语法在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的原因。 谢谢。
答案 0 :(得分:1)
我认为这个str(dataset)
错误比str
和data.table
的组合与xts
更相关
如果您使用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