Преобразовать столбец с данными в xts

#r #datatable #xts

#r #datatable #xts

Вопрос:

У меня есть datatable, и теперь я хотел бы выполнить некоторые вычисления в xts, используя синтаксис datatable. Мой первый вопрос заключается в том, рекомендуется ли это вообще, это означает, хорошо ли работают два пакета вместе. Альтернативой было бы преобразовать datatable в 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 в datatable?

2) Если нет, вы бы порекомендовали преобразовать datatable в xts и обратно впоследствии?

Чтобы предоставить больше информации, я хочу оценить модель ARIMA для каждого блока на панели, вот почему мне нужно использовать xts, я думаю. Спасибо.

Ответ №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