PRcalc for R
比例代表計算機 for R

Ver. 0.6.1 (Latest Update: 2016/04/27)

[한국어] [English] [日本語] 


0. 更新履歴

  • 2015/04/24 (0.1.0)
    1. PRcalc公開
  • 2015/04/25 (0.2.0)
    1.  nparty引数を削除しました。
    2. voteshare引数の名称をvoteに変更し、政党名が指定可能になりました。
    3. 非比例性指数(Gallagher Index)が出力されるようになりました。
    4. 関数の中身を簡潔にし、読み込み速度が若干速くなりました。
    5. PR.calc.ex()で利用例が見られるようになりました。
  • 2015/04/26 (0.3.0)
    1. threshold引数で閾値の設定が可能になりました。
  • 2015/04/27 (0.4.0)
    1. 引数voteにベクトルだけでなく、データフレーム型も利用できるようになりました。
  • 2015/04/28 (0.5.0) 
    1.  パッケージ化されました。
    2. パッケージ内にサンプルデータを同封しました。
  • 2015/05/07 (0.6.0)
    1. 新しいサンプルデータセットjapanese.sample2が追加されました。(2014年衆院選比例代表得票)
    2. 複数の比例区が同時に分析可能になりました。
  • 2016/04/27 (0.6.1) (It’s new!)
    • 不具合の修正

1. 使用方法

  1. library(devtools)(devtoolsがインストールされてない方は、まずinstall(“devtools”)をしてください。)
  2. install_github("JaehyunSong/PRcalc")
  3. library(PRcalc)で利用可能です。
    • 引数リスト(必須)
      • nseat: 議席総数(スカラー、ベクトル)
        • ベクトルの場合、複数の選挙区(ブロック)を分析します。ベクトルの長さはデータフレームvoteの列数より一つ小さいです。
      • vote: 得票数(ベクトル、データフレーム)
        • 入力例
          • 政党名なし。得票数 100, 500, 300: vote = c(100, 500, 300)
          • 政党名あり。あ党 100票、か党 500票、さ党 300票: vote = c("あ党" = 100, "か党" = 500, "さ党" = 300)
          • データフレームで使う場合、データフレームは必ず政党名が1列目に、得票数が2列目以降に入るようにしてください。
      • method: 議席変換方法
        • 最高平均法
          • dt: d’Hondt
          • sl: Sainte-Laguë
          • msl: Modified Sainte-Laguë
          • denmark: Danish
          • imperiali: Imperiali
          • hh: Huntington-Hill
        • 最大余剰方式
          • hare: Hare
          • droop: Droop
          • imperialiQ: Imperiali Quota
        • 様々な方式に対応したいと思います。他の方式があれば教えて下さい。
    • 引数リスト(選択)
      • threshold: 閾値を設定します(初期値は0)。5%ならthreshold = 0.05
      • viewer: 結果を表示する(基本オプションはTRUE)。FALSEの場合、リスト型のオブジェクトとして返還
  4. PRcalc.ex("引数"):サンプルデータで分析を行い、結果を表示します。
    • サンプルデータ(引数)は"japan"(2013年参院選)、"korea"(2012年総選挙)、"austria"(2013年総選挙)です。

2. サンプルデータ

  • 3つのデータセットが同封されています。
    • japanese.sample: 2013年参議院議員通常選挙
    • japanese.sample2: 2014年衆院選
    • korean.sample: 2012年韓国総選挙
    • austrian.sample: 2012年オーストリア総選挙

3. 使用例

  • 議席数=48, (自民党 700票, 公明党 80票, 民主党 100票, 維新 70票), 変換方式=ドント式
    PRcalc(nseat = 48, vote = c(“自民党” = 200, “公明党” = 80, “民主党” = 100, “日本維新の会” = 70), method = “dt”)
  • 議席数=30, (700票, 80票, 100票, 70票), 変換方式=ヘア式, 閾値 = 5%
    PRcalc(nseat = 30, voteshare = c(700, 80, 100, 70), method = “hare”, threshold = 0.05)
  • 議席数=48, 日本サンプルデータ使用, 変換方式=ドント式
    PRcalc(nseat = 48, vote = japanese.sample, method = “dt”)
  • 議席数=11ブロック180席, 日本サンプルデータ2使用, 変換方式=ドント式, 閾値=2%
    PRcalc(nseat = c(8, 14, 20, 22, 17, 11, 21, 29, 11, 6, 21), vote = japanese.sample2, method = “dt”, threshold = 0.02)

4. 結果画面

入力例(2013 参議院議員通常選挙)

(この例はPRclal.ex(“japan”)で再現できます。)

PRcalc(nseat = 48, vote = c(“自民党” = 18460335, “公明党” = 7568082, “民主党” = 7134215, “日本維新の会” = 6355299, “日本共産党” = 5154055, “みんなの党” = 4755160, “社会民主党” = 1255235, “生活の党” = 943836, “緑の党” = 457862, “みどりの風” = 430742, “新党大地” = 523146, “幸福実現党” = 191643), method = “dt”)

結果

(nseatがベクトルの場合、政党名、得票数、議席数、合計のみ表示されます。)

PRcalc for R 0.6.0
Proportional Representation Calculator

Author: Jaehyun Song (Kobe University)
Homepate: http://www.JaySong.net
Latest Update: 2014-05-07 
=======================================================

Method: d\’Hondt 変換方式

  政党名 得票数 得票率 獲得議席数 獲得議席率 議席率÷得票率
  Party Voteshare Vote_ratio Seats Seats_ratio Vote_Seats_Ratio
1 自民党 18460335 34.68% 18 37.5% 1.08
2 公明党 7568082 14.22% 7 14.58% 1.03
3 民主党 7134215 13.4% 7 14.58% 1.09
4 日本維新の会 6355299 11.94% 6 12.5% 1.05
5 日本共産党 5154055 9.68% 5 10.42% 1.08
6 みんなの党 4755160 8.93% 4 8.33% 0.93
7 社会民主党 1255235 2.36% 1 2.08% 0.88
8 生活の党 943836 1.77% 0 0% 0.00
9 緑の党 457862 0.86% 0 0% 0.00
10 みどりの風 430742 0.81% 0 0% 0.00
11 新党大地 523146 0.98% 0 0% 0.00
12 幸福実現党 191643 0.36% 0 0% 0.00

ENP(Before): 5.23 有効政党数(得票率)
ENP(After): 4.61 有効政党数(議席率)
Gallagher Index: 2.864 非比例性指数
Processing Time: 0.21819 s. 所要時間(秒)

>


 

5. 今後の方針

  • methodにall実装
  • 複数のmethod
  • 結果画面のカスタマイズ機能
  • アルゴリズムの最適化
  • PRcalc for Webの開発
  • viewer機能の独立