我有一个名为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
(...)
Run Code Online (Sandbox Code Playgroud)
我想用到apply.monthly每一列,所以最后我仍然会有77列,但每月数据而不是每日数据.我试过,
apply.monthly(pp, FUN=sum)但结果是一个只有一列的动物园对象(我想是添加所有列).
我也试了一个循环:
for (i in 1:77)
{
mensal<-apply.monthly(pp[,i], FUN=sum)
}
但它也只产生一列(第77列).我可能能够通过一些试验和错误使循环工作,但计算需要很长时间(我有17897行和77列),我想有一种更简单的方法可以不使用循环...所以如果你知道怎么样,请帮忙.谢谢!
Jos*_*ich 10
为了apply.monthly返回具有多个列的对象,您必须使用按列操作apply的函数(或不使用的函数).
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4091 次 |
| 最近记录: |