警告: R はまだ新しいです。
キャンペーンへの政治献金を示すいくつかのチャート (具体的にはバブル チャート) を R で作成しようとしています。x 軸は貢献の量、y 軸は貢献の数、円の面積はこのレベルでの貢献の合計を示すという考え方です。
データは次のようになります。
CTRIB_NAML CTRIB_NAMF CTRIB_AMT FILER_ID
John Smith $49 123456789
このFILER_ID
フィールドは、特定の候補者のデータをフィルタリングするために使用されます。
次の関数を使用して、このデータ フレームをバブル チャートに変換しました (こちらとこちらのヘルプに感謝します)。
vals<-sort(unique(dfr$CTRIB_AMT))
sums<-tapply( dfr$CTRIB_AMT, dfr$CTRIB_AMT, sum)
counts<-tapply( dfr$CTRIB_AMT, dfr$CTRIB_AMT, length)
symbols(vals,counts, circles=sums, fg="white", bg="red", xlab="Amount of Contribution", ylab="Number of Contributions")
text(vals, counts, sums, cex=0.75)
ただし、これにより、x 軸の間隔が多すぎます。全部で数百万のレコードがあり、一部の候補について分割すると、依然として圧倒的な量のデータになる可能性があります。絶対貢献度を範囲に変換するにはどうすればよいですか? vals
たとえば、0 ~ 10、11 ~ 20、21 ~ 30 などの範囲にグループ化するにはどうすればよいですか。
- - 編集 - -
コメントに従って、数値に変換vals
してから間隔にスライスできますが、それをどのように組み合わせてバブル チャートの構文に戻すかはわかりません。
new_vals <- as.numeric(as.character(sub("\\$","",vals)))
new_vals <- cut(new_vals,100)
しかし、再グラフ化:
symbols(new_vals,counts, circles=sums)
無意味です-すべての値がx軸のゼロに並んでいます。