将数据表列转换为 xts
Convert datatable column to xts
我有一个数据表,现在我想使用数据表语法在 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 的原因。
谢谢
我认为这个 str(dataset)
错误与 str
的关系比 data.table
和 xts
的组合更相关
如果您使用 dplyr
中的替代函数 glimpse
或进行其他操作,它可以正常工作:
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
我有一个数据表,现在我想使用数据表语法在 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 的原因。 谢谢
我认为这个 str(dataset)
错误与 str
的关系比 data.table
和 xts
如果您使用 dplyr
中的替代函数 glimpse
或进行其他操作,它可以正常工作:
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