どうすれば高速な関数を書くことができますか?
- データフレームを同じ長さ w、x、y、z の 4 つの部分に分割する
- w、x、y、z のインデックスごとの平均を返します。この平均はあるべきです
m=(w+x+y+z)/4
(これらはすべて文字であることに注意してください)。
サンプルデータは次のようになります。
# my data + noise 4 times
a <- 1:1000 + rnorm(10)
b <- 1:1000 + rnorm(10)
c <- 1:1000 + rnorm(10)
d <- 1:1000 + rnorm(10)
mydf <- data.frame(time=1:4000, measurement=c(a,b,c,d))
今まで、次の遅い回避策を使用しています。そして、関数を適用しますmydf$measurement
AvgOverPeriodsVector <- function(hdata, recordedperiods=4){
SamplesPerPeriod <- length(hdata)/recordedperiods
a <- unname(sapply((split(hdata, rep(1:SamplesPerPeriod,recordedperiods))),mean ))
return(a)
}
どうすれば速度を改善できますか?
Element-wise 平均で R
を速くしrowMean
たい
ですか?