R: ¿Por qué un objeto xts se convierte en un objeto zoo después de llamar a transform ()?
Pregunta
transform () elimina el calificador de clase "xts" de mi objeto xts:
> class(myxts)
[1] "xts" "zoo"
> myxts = transform(myxts, ABC = 1)
> class(myxts)
[1] "zoo"
¿Por qué es eso?
Solución
No hay un método xts para transform
, por lo que se envía el método zoo.El método zoo crea explícitamente un nuevo objeto zoo.
> zoo:::transform.zoo
function (`_data`, ...)
{
if (is.null(dim(coredata(`_data`))))
warning("transform() is only useful for matrix-based zoo series")
zoo(transform.data.frame(data.frame(coredata(`_data`)), ...),
index(`_data`), attr(`_data`, "frequency"))
}
<environment: namespace:zoo>
Puede simplemente envolver sus llamadas transform
en as.xts
, o su ejemplo podría escribirse como myxts$ABC <- 1
.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow