0
我想要實現以下rollscale
函數:縮放(中心和歸一化,即減去mu和除以sigma)數據集x,但不是使用全局的mu
和sigma
來執行它們,而是在滾動窗口內對所看到的數據進行計算。我提出了以下內容,但不知道如何在第三個rollapplyr
上定義函數參數,即如何知道當前位置是什麼?如何使用zoo :: rollapply來創建`rollscale`實現?
library(zoo)
rollscale <- function(x, k) {
mu <- rollapplyr(x, k, mean)
sigma <- rollapplyr(x, k, sd)
x <- rollapplyr(x, k, function(x) ???)
}
簡單的尺度函數是:
scale <- function(x) {
mu <- mean(x)
sigma <- sd(x)
x <- (x - mu)/sigma
}
爲什麼不使用'rollapplyr(x,k,scale)'? –
相當不錯的主意! :D沒有想到有規模,如果我只是想說兩倍西格瑪的標準化呢? :)好的,你確定你給了我答案。請回答,我會接受。 –