¿Por qué se implementa XTS como una matriz en lugar de un marco de datos?

StackOverflow https://stackoverflow.com/questions/8862951

  •  28-10-2019
  •  | 
  •  

Pregunta

He encontrado información sobre la representación de los campos de XTS en este Thread Pero todavía no estoy claro por qué XTS es un índice + una matriz. ¿Por qué no un índice + un marco de datos? ¿No permitiría eso más flexibilidad al trabajar con factores y columnas numéricas?

Una vez que he cargado datos en XTS, la mayor parte del trabajo consiste en realizar operaciones numéricas en un conjunto completo o un subconjunto de la serie temporal. Para esto, la indexación funciona muy bien, pero me veo obligado a hacer llamadas como data.frame(data.matrix(myxts)) poder extraer factores y columnas numéricas.

Además, encuentro más conveniente usar la notación $ que la indexación de matriz, aunque esta es realmente una pregunta diferente. Por ejemplo:

lm(myxts$Res ~ myxts$ThisVar + myxts$ThatVar)

es más fácil de escribir que

lm(myxts[, "Res"] ~ myxts[, "ThisVar"] + myxts[, "ThatVar"]).
¿Fue útil?

Solución

XTS usa matriz en lugar de datos.

  1. Es una subclase del zoológico, y así es como se estructuran los objetos del zoológico y
  2. Los objetos de matriz tienen un rendimiento mucho mejor que los datos.

Su segunda pregunta podría resolverse utilizando el data= argumentar lm o, en general, mediante el uso with:

with(myxts, lm(Res ~ ThisVar + ThatVar))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top