次のデータセット (実際のデータの単純なバージョン) 'data' があり、変数 x1 と x2 の加重平均を計算したいと思います。重み付け w1 と w2 をそれぞれ使用して、2 つのグループ (変数 n によって決定されるグループ) に分割します。 )。
data <- data.frame(n = c(1,1,1,2,2,2), x1 = c(4,5,4,7,5,5), x2 = c(7,10,9,NaN,11,12), w1 = c(0,1,1,1,1,1), w2 = c(1,1,1,0,0,1))
with() を使用して実行しようとしていますが、これを実行するとエラーが発生します。
with(data, aggregate(x = list(x1=x1, x2=x2), by = list(n = n), FUN = weighted.mean, w = list(w1 = w1,w2 = w2)))
一方、重みが指定されていない場合は機能しますが、この場合はデフォルトのレベルの重みが使用されます (つまり、FUN=mean を使用するのと同じです)。
with(data, aggregate(x = list(x1=x1, x2=x2), by = list(n = n), FUN = weighted.mean))
この質問は、グループと列による加重平均に似ていますが、私の質問には列ごとに異なる重みが含まれている点が異なります。データ テーブルを使用してみましたが、with() と同じ重み付けエラーが発生します。助けてくれてありがとう。