gpt4 book ai didi

r - 如何在具有多列的 Zoo 对象中使用 `apply.monthly`

转载 作者:行者123 更新时间:2023-12-02 14:15:36 25 4
gpt4 key购买 nike

我有一个名为 pp 的动物园对象,其中包含每日数据和 77 列,如下所示:

            X02R X03N X04K X04N X04R X06I X06N X08J X08P X09O X11O X12L X14N X15G X16K  (...)
1961-01-01 8.3 5.2 3.2 0.0 8.7 5.2 15.0 7.2 11.5 13.0 0.0 4.9 0.0 2.9 6.0
1961-01-02 1.1 3.2 10.0 0.0 0.0 3.5 0.0 8.7 0.4 1.2 0.0 0.4 0.0 3.2 0.2
1961-01-03 12.0 4.2 50.5 0.0 9.0 38.5 15.0 31.7 1.7 8.7 9.0 69.2 4.2 22.2 9.2
(...)

我想使用apply.monthly到每一列,所以最终我仍然有 77 列,但包含每月数据而不是每日数据。我试过 apply.monthly(pp, FUN=sum)但结果是一个只有一列的动物园对象(我认为是添加所有列)。

我也尝试过循环:

for (i in 1:77)
{
mensal<-apply.monthly(pp[,i], FUN=sum)
}
但它也只生成一列(第 77 列)。我也许可以通过一些试验和错误来使循环工作,但需要很长时间才能计算(我有 17897 行和 77 列),我想有一种更简单的方法可以在不使用循环的情况下完成此操作...所以如果你知道怎么办,请帮忙。谢谢!

最佳答案

为了让 apply.monthly 返回具有多个列的对象,您必须使用按列操作的函数(或 apply 不按列操作的函数) 't)。

library(quantmod)
getSymbols("SPY")
zSPY <- as.zoo(SPY)
# sum doesn't operate by column; it sums everything to one value
sum(zSPY)
spy.sum <- apply.monthly(zSPY, sum)
# colSums operates by column
spy.colSums <- apply.monthly(zSPY, colSums)
# use apply to operate by column
spy.apply.sum <- apply.monthly(zSPY, apply, 2, sum)

关于r - 如何在具有多列的 Zoo 对象中使用 `apply.monthly`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7286585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com