R: Por que um objeto XTS se torna um objeto zoológico depois de chamar transform ()?
Pergunta
Transform () remove os "XTS" classe qualificador de meus XTS objeto:
> class(myxts)
[1] "xts" "zoo"
> myxts = transform(myxts, ABC = 1)
> class(myxts)
[1] "zoo"
Por que isso?
Solução
Não há nenhum método XTS para transform
, então o método zoológico é despachado. O método zoológico explicitamente cria um novo objeto zoológico.
> 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>
Você poderia simplesmente envolver suas chamadas transform
em as.xts
, ou o seu exemplo poderia ser escrito como myxts$ABC <- 1
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow