R:调用transform()后为什么xts对象成为zoo对象?

时间:2012-02-17 16:35:00

标签: r transform xts

transform()从我的xts对象中删除类“xts”限定符:

> class(myxts)
[1] "xts" "zoo"
> myxts = transform(myxts, ABC = 1)
> class(myxts)
[1] "zoo"

为什么?

1 个答案:

答案 0 :(得分:1)

transform没有xts方法,因此调度zoo方法。 zoo方法显式创建一个新的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>

您可以简单地将transform电话打包到as.xts,或者您的示例可以写成myxts$ABC <- 1