0

我想实现以下rollscale函数来缩放(中心化和规范化,即减去 mu 并除以 sigma)数据集 x,但不是使用全局来执行它,而是musigma所见数据的滚动窗口内计算它们。我得出了以下内容,但不知道如何在第三个上定义函数参数,rollapplyr即我如何知道当前位置是什么?

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         
}
4

1 回答 1

1

你让这比现在更复杂。你有一个scale函数,你想滚动应用它。这正是这样rollapply做的!

scale <- function(x) {
    mu <- mean(x)
    sigma <- sd(x)
    x <- (x - mu)/sigma         
}
scaled.data <- rollapplyr(Data, 5, scale)
于 2013-08-27T13:15:55.627 回答