0

どうすれば高速な関数を書くことができますか?

  • データフレームを同じ長さ 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たい ですか?

4

1 に答える 1

1

ここでヒントを見つけました.rowMeans。これは良い解決策だと思います。

于 2012-11-25T02:49:27.670 に答える