Skip to contents

Biographical and political metadata for 963 records of legislators who served in the 20th (2016-2020), 21st (2020-2024), or 22nd (2024-2028) Korean National Assembly. Some legislators appear in multiple assemblies. The 22nd assembly covers the members seated by 2026-09-23, among them the winners of the by-elections of 2026-06-11.

Usage

legislators

Format

A data frame with 963 rows and 15 variables:

member_id

Unique legislator identifier (MONA_CD from the National Assembly API)

assembly

Assembly number (20, 21, or 22)

name

Name in Korean (hangul)

name_hanja

Name in Chinese characters (hanja)

name_eng

Name in English (romanized)

party

Party label that the official roster of that assembly records for the member. It reflects party mergers, renamings and switches during the term. For the 22nd assembly it is the party as of September 2026, or the last party recorded for a member who had left the Assembly by then.

party_elected

Party at election, that is, the party on whose ticket or list the member was elected. For a successor to a proportional seat, the party of the list the seat came from. The source records ten such successors under the party that the list party had merged into by the time they took the seat (for example, the Democratic Party of Korea for the Democratic Alliance of Korea), as does release 0.7.0 of the kna project.

district

Electoral district name, or party list position for proportional members

district_type

Election type: "constituency" or "proportional"

committees

Committees (standing and special) the member served on in that assembly, comma-separated in order of first assignment. Empty for a member with no assignment, such as the Speaker.

gender

"M" (male) or "F" (female)

birth_date

Date of birth

seniority

Seniority at that assembly, that is, the number of terms served up to and including this one, counting terms before the 20th (1 = first-term)

n_bills

Number of bills in bills the member proposed, co-proposed or supported (see get_proposers)

n_bills_lead

Bills proposed as lead (primary) proposer

Source

Open National Assembly Information API (Republic of Korea), as corrected in kna 0.7.0 (20th and 21st) and kna 0.8.1 (22nd) (https://github.com/kyusik-yang/kna). License: public domain (Korean government open data).

Details

672 unique legislators served across the three assemblies. member_id is consistent across assemblies, so legislators can be tracked over time. Party names may differ between party (mid-term) and party_elected (election day) due to party mergers and name changes, which are common in Korean politics. Some legislators share a name with another member of the same assembly (for example, two members named Kim Seong-tae in the 20th), so join on member_id, never on name.

Up to version 0.1.3, seniority held each member's lifetime number of terms at the time of data collection, so it overstated the seniority of 286 member-terms of the 20th and 21st assemblies, and committees came from a present-day string that did not match the assembly. Both now follow release 0.7.0 of the kna project, as do six values of party_elected, one district, two district types and the bill counts. The 22nd assembly is rebuilt from release 0.8.1 of the kna project.

Examples

data(legislators)

# Party composition by assembly
table(legislators$assembly, legislators$party)
#>     
#>      개혁신당 국민의당 국민의힘 기본소득당 녹색정의당 더불어민주당 무소속
#>   20        0       25        0          0          0          138      6
#>   21        0        1      123          1          2          180      6
#>   22        3        0      113          1          0          177      8
#>     
#>      민주평화당 바른미래당 사회민주당 새누리당 시대전환 열린민주당 자유한국당
#>   20          6         17          0       10        0          0        111
#>   21          0          0          0        0        1          1          0
#>   22          0          0          1        0        0          0          0
#>     
#>      정의당 조국혁신당 진보당
#>   20      7          0      0
#>   21      6          0      1
#>   22      0         14      4

# Gender gap in bill production
tapply(legislators$n_bills_lead, legislators$gender, median)
#>  F  M 
#> 71 59 

# First-term vs senior legislators
boxplot(n_bills_lead ~ seniority, data = legislators,
        xlab = "Terms served", ylab = "Bills proposed (lead)")