【问题标题】:R: Why an xts object becomes a zoo object after calling transform()?R:为什么一个 xts 对象在调用 transform() 后变成了 zoo 对象?
【发布时间】:2012-02-17 16:35:00
【问题描述】:

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

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

为什么会这样?

【问题讨论】:

    标签: r transform xts


    【解决方案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 &lt;- 1

    【讨论】:

    • 我已经尝试过 myxts = as.xts(transform(myxts, ...)) 但是当我尝试通过日期索引访问 myxts 时出现此错误:“函数错误(年份 = 1970, 月 = 1, 日 = 1, 小时 = 0, 分钟 = 0, : 未使用的参数 (tz1 = "", tz2 = "EST", tz3 = "EDT")"
    • @RobertKubrick:我几乎不可能猜出导致该错误的原因。一个可重现的例子真的很有帮助。
    • 我将把它作为一个单独的问题发布。
    猜你喜欢
    • 1970-01-01
    • 2021-11-12
    • 2011-05-21
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2019-11-02
    • 2022-06-27
    • 2013-04-07
    相关资源
    最近更新 更多