PRcalc for R
비례대표 계산기 for R

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

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


0. 업데이트 이력

  • 2015/04/24 (0.1.0)
    1. PRclac공개
  • 2015/04/25 (0.2.0)
    1. nparty인수를 삭제하였습니다.
    2. voteshare인수의 명칭을 vote로 변경하고, 정당명을 지정할 수 있게 되었습니다.
    3. 비비례성 지수(Gallagher Index)가 함께 출력됩니다.
    4. 함수 내부를 간결화하여 불러오기 속도가 약간 향상되었습니다.
    5. PRcalc.ex()함수를 이용하여 예제를 볼 수 있게 되었습니다.
  • 2015/04/26 (0.3.0)
    1. threshold 인수로 방지조항 설정이 가능해졌습니다.
  • 2015/04/27 (0.4.0)
    1. vote 인수에 벡터형 뿐만 아니라 data.frame형 데이터도 사용할 수 있게 되었습니다.
  • 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) (devtool이 인스톨 되어있지 않았을 경우, 먼저 install("devtools")를 실행해주십시오.)
  2. install_github("JaehyunSong/PRcalc")
  3. library(PRcalc)
  4. PRclac(인수)로 이용가능
    • 인수 리스트 (필수)
      • nseat: 총 의석수(스칼라, 벡터)
        • 벡터일 경우 권역별 비례대표제로 계산을 합니다. 벡터의 길이는 데이터프레임의 열보다 하나 작아야합니다.
      • vote: 득표수(벡터, 데이터프레임)
        • 입력예시
          • 정당명 없음. 득표수 100, 500, 300: vote = c(100, 500, 300)
          • 정당명 있음. 득표수 A당 100표, B당 500표, C당 300표: vote = c("A당" = 100, "B당" = 500, "C당" = 300)
          • 데이터프레임을 이용할 경우 반드시 첫번째 열은 정당명, 두번째 열 부터는 득표수이어야 합니다.
      • method: 의석 변환 방식
        • 최고평균법(Highest Averages Method)
          • dt: 동트식(d’Hondt)
          • sl: 생트-라게식(Sainte-Laguë)
          • msl: 수정 생트-라게식(Modified Sainte-Laguë)
          • denmark: 덴마크식(Danish)
          • imperiali: 임페리얼리식(Imperiali)
          • hh: 헌팅턴-힐식 (Huntington-Hill)
        • 최대잉여법(Largest Remainder Method)
          • hare: 헤어식(Hare)
          • droop: 드루프식(Droop)
          • imperialiQ: 임페리얼리 쿼터식(Imperiali Quota)
        • 그 외에도 많은 방식을 탑재하고자 합니다. 다른 방식에 대해서 알려주시면 적극 반영토록 하겠습니다.
    • 인수 리스트(선택)
      • threshold: 방지조항을 설정합니다(기본값은 0). 방지조항이 2%인 경우, threshold = 0.02
      • viewer: 결과를 표시합니다(기본 옵션은 TRUE). FALSE의 경우, 결과를 표시하지 않고 list형 데이터로 반환합니다.
  5. PRcalc.ex(인수): 샘플 데이터를 이용하여 결과를 출력합니다.
    • 인수는 "korea" (2012년 대한민국 총선), "japan" (2013년 일본 참의원 선거), "austria" (2013년 오스트리아 총선)입니다.

2. 샘플 데이터

  • korean.sample: 2012년 총선
  • japanese.sample: 2013년 일본 참의원 선거
  • japanese.sample2: 2014년 일본 중의원 선거
  • austrian.sample: 2012년 오스트리아 총선

3. 사용예

  • 의석수=54, (새누리당 100표, 민주당 100표, 정의당 50표, 녹색당 10표), 변환방식 = 헤어식
    PRcalc(nseat = 54, vote = c("새누리당" = 100, "민주당" = 100, "정의당" = 50, "녹색당" = 10), method = "hare")
  • 의석수 = 48, ( 700표, 80표, 100표, 70표), 변환방식 = 동트식, 방지조항 = 5%
    PRcalc(nseat = 48, vote = c(700, 80, 100, 70), method = "dt", threshold = 0.05)
  • 의석수=54, 한국 샘플데이터 사용, 변환방식 = 헤어식, 방지조항 5%
    PRcalc(nseat = 54, vote = korean.sample, method = "hare", threshold = 0.05)
  • 의석수=11개 블럭 180석, 일본 2014년 데이터 사용, 변환방식 = 동트식, 방지조항 2%
    PRcalc(nseat = c(8, 14, 20, 22, 17, 11, 21, 29, 11, 6, 21), vote = japanese.sample2, method = "dt", threshold = 0.02)

4. 결과화면

입력예(2012년 총선)

(이 예는 PRclal.ex(“korea”)로 확인할 수 있습니다.)

PRcalc(nseat = 54, vote = c(“새누리당” = 9130651, “민주통합당” = 7777123, “자유선진당” = 690754, “통합진보당” = 2198405, “창조한국당” = 91935, “국민생각” = 156241, “가자!대국민중심당” = 60428, “친박연합” = 134898, “국민행복당” = 35846, “기독자유민주당” = 257190, “녹색당” = 103842, “대한국당” = 14133, “미래연합” = 19962, “불교연합당” = 36262, “정통민주당” = 48648, “진보신당” = 243065, “청년당” = 73194, “한국기독당” = 54332, “한국문화예술당” = 23330, “한나라당” = 181822), method = “hare”, threshold = 0.05)

결과

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: Hare 변환방식

  정당명 득표수 득표율 획득의석수 획득의석율 의석율/득표율
  Party Voteshare Vote_ratio Seats Seats_ratio Vote_Seats_Ratio
1 새누리당 9130651 42.8% 25 46.3% 1.08
2 민주통합당 7777123 36.46% 21 38.89% 1.07
3 자유선진당 690754 3.24% 2 3.7% 1.14
4 통합진보당 2198405 10.31% 6 11.11% 1.08
5 창조한국당 91935 0.43% 0 0% 0.00
6 국민생각 156241 0.73% 0 0% 0.00
7 가자! 대국민중심당 60428 0.28% 0 0% 0.00
8 친박연합 134898 0.63% 0 0% 0.00
9 국민행복당 35846 0.17% 0 0% 0.00
10 기독자유민주당 257190 1.12% 0 0% 0.00
11 녹색당 103842 0.49% 0 0% 0.00
12 대한국당 14133 0.07% 0 0% 0.00
13 미래연합 19962 0.09% 0 0% 0.00
14 불교연합당 36262 0.17% 0 0% 0.00
15 정통민주당 48648 0.23% 0 0% 0.00
16 진보신당 243065 1.14% 0 0% 0.00
17 청년당 73194 0.34% 0 0% 0.00
18 한국기독당 54332 0.25% 0 0% 0.00
19 한국문화예술당 23330 0.11% 0 0% 0.00
20 한나라당 181822 0.85% 0 0% 0.00

ENP(Before): 3.05 유효정당수(득표율)
ENP(After): 2.64 유효정당수(의석율)
Gallagher Index: 3.48 비비례성 지수
Processing Time: 0.05792 s. 소요시간(초)

>


 

5. 차후 업데이트 예정

  • method에 모든 방식의 결과를 표시하고 비교하는 all기능의 추가
  • 복수의 method의 결과 표시 및 비교
  • 결과 화면의 커스터마이즈 기능 추가
  • 알고리즘 최적화
  • PRcalc for Web 개발
  • viewer기능 독립