1. Учиться
  2. /
  3. Courses
  4. /
  5. Rcpp で R コードを最適化する

Connected

Exercise

加重平均(C++ 版)

ベクトルの加重平均を計算する関数を作成して、身につけたスキルを実践しましょう。

数値ベクトル x(データ値)と、もう一つの数値ベクトル w(重み)が与えられたとき、加重平均は「各データ値に重みを掛けた総和」を「重みの総和」で割ったものです。x と w は同じ要素数である必要があります。

R では weighted.mean() を使い、内部では sum(x * w) / sum(w) が計算されます。

Инструкции

100 XP
  • weighted_mean_cpp() 関数の定義を完成させてください。
    • total_xw と total_w を 0 に初期化し、n には x のサイズを代入します。
    • for ループの引数を指定し、カウンタには整数の i を使います。
    • ループ内で、i 番目の重みを total_w に、i 番目のデータ値と i 番目の重みの積を total_xw に加算します。
    • 最後に、積の合計を重みの合計で割った値を返します。