PRcalc for R
비례대표 계산기 for R
Ver. 0.6.1 (Latest Update: 2016/04/27)
0. 업데이트 이력
- 2015/04/24 (0.1.0)
- PRclac공개
- 2015/04/25 (0.2.0)
nparty
인수를 삭제하였습니다.voteshare
인수의 명칭을vote
로 변경하고, 정당명을 지정할 수 있게 되었습니다.- 비비례성 지수(Gallagher Index)가 함께 출력됩니다.
- 함수 내부를 간결화하여 불러오기 속도가 약간 향상되었습니다.
PRcalc.ex()
함수를 이용하여 예제를 볼 수 있게 되었습니다.
- 2015/04/26 (0.3.0)
threshold
인수로 방지조항 설정이 가능해졌습니다.
- 2015/04/27 (0.4.0)
vote
인수에 벡터형 뿐만 아니라 data.frame형 데이터도 사용할 수 있게 되었습니다.
- 2015/04/28 (0.5.0)
- 패키지화가 되었습니다.
- 패키지내에 샘플 데이터를 동봉하였습니다.
- 2015/05/07 (0.6.0)
- 새로운 샘플 데이터가 추가되었습니다.(
japanese.sample2
: 2014년 일본 중의원 선거) - 권역별 비례대표제 계산이 가능해졌습니다.
- 새로운 샘플 데이터가 추가되었습니다.(
- 2016/04/27 (0.6.1) (It’s new!)
- 버그 수정
1. 사용방법
library(devtools)
(devtool
이 인스톨 되어있지 않았을 경우, 먼저install("devtools")
를 실행해주십시오.)install_github("JaehyunSong/PRcalc")
library(PRcalc)
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)
- 데이터프레임을 이용할 경우 반드시 첫번째 열은 정당명, 두번째 열 부터는 득표수이어야 합니다.
- 정당명 없음. 득표수 100, 500, 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)
- 그 외에도 많은 방식을 탑재하고자 합니다. 다른 방식에 대해서 알려주시면 적극 반영토록 하겠습니다.
- 최고평균법(Highest Averages Method)
- 인수 리스트(선택)
threshold
: 방지조항을 설정합니다(기본값은 0). 방지조항이 2%인 경우,threshold = 0.02
viewer
: 결과를 표시합니다(기본 옵션은 TRUE). FALSE의 경우, 결과를 표시하지 않고 list형 데이터로 반환합니다.
- 인수 리스트 (필수)
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기능 독립
Leave a Reply