問題タブ [longitudinal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
178 参照

r - Rで加重グループごとの平均を計算する高速な方法は?

縦方向のデータが与えられた場合、各列が特定の変数 の重み付けされたグループごとの平均を表す行列を計算するにはどうすればよいですか?

ループを必要とするアプローチを開発しましたが、遅すぎます。これはおそらくベクトル化できると思いますが、解決策はわかりません。

これが私の現在のアプローチです:

もともと、 を使用してこれを実行しようとしlfe::demeanlistましたが、間違った出力が得られます!

それははるかに高速ですが...

次の 2 種類の回答のいずれかを受け入れます。

  1. lfe::demeanlist重み付けされたケースで何をしているかの説明。加重偏差を平均から差し引いたときに加重平均を取得する必要はありませんか? そして、これを知っていると、重み付けされたグループごとの平均の行列をどのように計算できますか?
  2. 重み付けされたグループごとの平均の行列を計算するために demeanlist を使用しない方法。

注意: を%*%使用して行列乗算関数に置き換えるとRcppEigen速度は上がりますが、十分ではありません。問題はループだと思います。

入力例を次に示します。

fグループ化係数です。