2
假設我想使用函數返回多於一個值的函數使用rollapply。像這樣:使用函數返回多個值的函數
library(quantmod)
getSymbols("YHOO")
openYHOO <- YHOO[1:10,1]
rollapply(openYHOO, width = 2, range)
我得到一個錯誤。 我也嘗試合併函數內部的結果:
rollapply(openYHOO, width = 2, function(x) {
cbind(range(x))
})
rollapply(openYHOO, width = 2, function(x) {
merge(range(x))
})
更多的錯誤。
我可以這樣做:
cbind(
rollapply(openYHOO, width = 2, function(x) {
range(x)[1]
}),
rollapply(openYHOO, width = 2, function(x) {
range(x)[2]
})
)
...和它的作品。
但是,如果我想調用fivenum
或者在有趣的參數中使用更復雜和計算密集的東西,該怎麼辦?我是否需要爲每個想返回的值調用rollapply,並一遍又一遍地生成同一個對象?
我錯過了什麼,或者我應該放棄rollapply和滾動我自己的滾動窗口功能?
你能解釋爲什麼這個rollapply(openYHOO, width = 2, range)
不起作用嗎?
這工作。謝謝。不是我所期望的「by.column \t邏輯」的幫助文檔描述,如果TRUE,FUN分別應用於每個列。但是文檔中的示例確實顯示了我正在查找的行爲。適合我的例子:'rollapply(openYHOO,width = 3,FUN = function(x)coef(lm(x〜seq_along(x))),by.column = FALSE,align =「right」)' – brandco