2012-06-20 268 views
1

我每天的數據的數據幀:DF四列:Date, A, B, C ,我試圖通過柱獲得的每週數據的平均值。 我想:如何使用R來計算每列數據的平均值?

library(xts) 
xdf <- xts(df[ ,-1],as.Date(df$Date)) 

apply.weekly(xdf,mean) 

,但是這給了我所有列的平均值。我需要每列的每週手段。

謝謝您的幫助

回答

8

首先得到一些數據(我將使用一個data.frame,因爲這是你使用的是什麼,但我真的建議你用的時間序列對象的時間序列類)

getSymbols("SPY", src='yahoo', from='2012-05-01', to='2012-06-15', 
      return.class='data.frame') 
#"SPY" 

apply.weekly將由周分割數據並應用功能,每星期。 apply.weekly(SPY, mean)將計算該周所有數據的平均值,但希望它來計算平均每個星期每列的。所以,你必須applymean到每一列

apply.weekly(SPY, function(x) apply(x, 2, mean)) 
#   SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted 
#2012-05-04 139.6425 140.4675 138.750 139.3275 149400050  138.6075 
#2012-05-11 135.9480 136.9320 135.338 136.2040 173105700  135.5020 
#2012-05-18 133.3000 133.9180 132.036 132.1760 229282720  131.4960 
#2012-05-25 131.7660 132.6800 130.896 132.2140 176634780  131.5340 
#2012-06-01 131.7100 132.8925 130.290 131.2725 191170200  130.5950 
#2012-06-08 130.2780 131.3380 129.584 130.8580 175917220  130.1820 
#2012-06-15 132.8420 133.7760 131.828 132.8020 184751180  132.2540 

僅供參考,apply.weeklyperiod.apply的包裝,所以你也可以用

period.apply(SPY, endpoints(SPY, "weeks"), FUN=function(x) apply(x, 2, mean)) 
+0

非常感謝您的幫助得到了上述結果。 –

+0

我有問題安裝this.I得到的錯誤消息:install.packages(「XTS」,回購=「http://r-forge.r-project.org」) 警告消息: 包「XTS」不是可用(R版本2.15.0) –

+0

對不起。感謝您的澄清。 –