ケースに重みを付けて、ggplot でグラフをプロットするのが好きです。たとえば、次のように、ケースごとに特定の重み係数があります。
value weight
2 0.34
5 0.75
6 2.31
など...単純なグループ化されたバー (「クロス集計」) をプロットするのは簡単です。xtabs 関数を使用できます。
ftab <- round(xtabs(weightBy ~ varCount + varGroup),0)
重み付けされたケースでヒストグラム、単純なバー、または単一のボックス プロットをプロットする場合、分布を維持したいので、次の関数を使用してケースに重みを付けます。
weightby <- function(var, weight) {
items <- unique(var)
newvar <- c()
for (i in 1:length(items)) {
newcount = round(sum(weight[which(var==items[i])]))
newvar <- c(newvar, rep(items[i], newcount))
}
return (newvar)
}
if (!is.null(weightBy)) {
variable <- weightby(variable, weightBy)
}
ただし、この関数は元のケースの順序を無視し、「ケース」は関連するカテゴリに従って昇順で番号付けされます。しかし... グループ化された箱ひげ図をプロットしたい場合は、a) 重み付けされたカウントを持つ重み付けされた変数 b) 重み付けされたグループを持つ重み付けされた変数 c) 各グループ内の重み付けされた平均、中央値、分位数が必要です
どうすればこれを行うことができますか? 正しい加重クロス集計表がありますが、各サブグループからの加重平均はありません。これは、テーブルの作成に上記の関数を使用できないためです (正しいケースの順序が失われたため)。
どんなヒントでも大歓迎です!