0

Matlab から移行する人として、インデックス (indxs) がヒストグラム ビン (エッジ) 内にある DepDelay 値の平均を見つけるためのより効率的な方法についてアドバイスをお願いします。Matlab と現在の R スクリプトには、次のコマンドがあります。

edges       =   seq( min(t), max(t), by = dt )
indxs       =   findInterval( t, edges,all.inside=TRUE )
listIndx    =   sort( unique( indxs ) )
n           =   length( edges )
avgDelay    =   rep( 1, n) * 0
for (i in 1 : n ){
  id = listIndx[i]
  jd = which( id == indxs )
  if ( length(jd) > minFlights){
    avgDelay[id] = mean(DepDelay[jd])
  }
}

R で for ループを使用すると、問題が発生する可能性があることはわかっていますが、コードの効率を向上させるためにこの質問をします。

もちろん。関連するベクトルのいくつかのスニペット:

DepDelay[1:20] = [1] -4 -4 -4 -9 -6 -7 -1 -7 -6 -7 -7 -5 -8 -3 51 -2 -1 -4 -7 -10

および関連する indxs 値:

indxs[1:20] = [1] 3 99 195 291 387 483 579 675 771 867 963 1059 1155 1251 1351 1443 1539 1635 1731 1827 

minFlights = 3

ありがとうございました。

BSL

4

1 に答える 1