我與一些數據樣本XTS對象:與交易應用XTS對象的功能中的R
dates <- seq.Date(from = as.Date("2010-01-01", format = "%Y-%m-%d"),
to = as.Date("2013-12-01", format = "%Y-%m-%d"), by = "month")
sample_data <- cbind(1:length(dates),length(dates):1)
xts_object <- xts(x = sample_data, order.by = dates)
然後我就可以使用apply.yearly與功能cumsum:
apply.yearly(x = xts_object, FUN = cumsum)
輸出是一個轉置的矩陣,這不是我最初想要返回的矩陣。
我希望上面的代碼段返回相同的輸出:
rbind(apply(X = xts_object[1:12],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[13:24],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[25:36],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[37:48],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[49:60],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[61:72],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[73:84],MARGIN = 2,FUN = cumsum))
問題與使用應用的是,它返回一個矩陣,而不是一個XTS對象。雖然我可以通過使用as.xts來解決這個問題,但我想知道是否有某些我錯過了,或者如果我正在使用apply.yearly不正確。使用純粹的應用程序似乎更容易發現錯誤和錯誤。
'apply'總是返回'matrix'無論您是使用' xts'或'data.frame' – akrun
只需使用'reclass()'使它再次成爲'xts':'reclass(apply(X = xts_object,MARGIN = 2,FUN = cumsum),match.to = xts_object)' – Rime
您的'apply'調用的輸出不會重置每年的累計和。這與調用'cumsum(xts_object)'相同。 'apply.yearly'也應該重置每年的累計金額。 –