R: read roll call data in Poole-Rosenthal KH format

readKH {pscl} | R Documentation

## read roll call data in Poole-Rosenthal KH format

### Description

Creates a `rollcall` object from the flat file format for roll call data used by Keith Poole and Howard Rosenthal.

### Usage

    readKH(file,
           dtl=NULL,
           yea=c(1,2,3),
           nay=c(4,5,6),
           missing=c(7,8,9),
           notInLegis=0,
           desc=NULL,
           debug=FALSE)

### Arguments

`file` | string, name of a file or URL holding KH data
`dtl` | string, name of a file or URL holding KH `dtl` file (information about votes); default is `NULL`, indicating no `dtl` file
`yea` | numeric, possibly a vector, code(s) for a Yea vote in the rollcall context (or a correct answer in the educational testing context). Default is `c(1,2,3)`, which corresponds to Yea, Paired Yea, and Announced Yea in Poole/Rosenthal data files.
`nay` | numeric, possibly a vector, code(s) for a Nay vote in the rollcall context (or an incorrect answer in the educational testing context). Default is `c(4,5,6)`, which corresponds to Announced Nay, Paired Nay, and Nay in Poole/Rosenthal data files.
`missing` | numeric and/or `NA`, possible a vector, code(s) for missing data. Default is `c(0,7,8,9,NA)`; the first four codes correspond to Not Yet a Member, Present (some Congresses), Present (some Congresses), and Not Voting.
`notInLegis` | numeric or `NA`, possibly a vector, code(s) for the legislator not being in the legislature when a particular roll call was recorded (e.g., deceased, retired, yet to be elected). Default is `0` for Poole/Rosenthal data files.
`desc` | string, describing the data, e.g., `82nd U.S. House of Representatives`; default is `NULL`
`debug` | logical, print debugging information for net connection

### Details

Keith Poole and Howard Rosenthal have gathered an impressive collection of roll call data, spanning every roll call cast in the United States Congress. This effort continues now as a real-time exercise, via a collaboration with Jeff Lewis (109th Congress onwards). Nolan McCarty collaborated on the compilation of roll call data for the 102nd through 108th Congress.

This function relies on some hard-coded features of Poole-Rosenthal flat files, and assumes that the `file` being supplied has the following structure (variable, start-end columns):

ICPSR legislator unique ID

  4-8

ICPSR state ID

  9-10

Congressional District

  11-12

state name

  13-20

party code

  21-23

legislator name

  26-36

roll-call voting record

  37 to end-of-record

This function reads data files in that format, and creates a `rollcall`, for which there are useful methods such as `summary.rollcall`. The `legis.data` component of the `rollcall` object is a `data.frame` which contains:

`state`

  a 2-character string abbreviation of each legislator' state

`icpsrState`

  a 2-digit numeric code for each legislator's state, as used by the Inter-university Consortium for Political and Social Research (ICPSR)

`cd`

  numeric, the number of each legislator's congressional district within each state; this is always 0 for members of the Senate

`icpsrLegis`

  a unique numeric identifer for each legislator assigned by the ICPSR, as corrected by Poole and Rosenthal.

`partyName`

  character string, the name of each legislator's political party

`party`

  numeric, code for each legislator's political party; see http://legacy.voteview.com/PARTY3.HTM

The `rownames` attribute of this data frame is a concatenation of the legislators' names, party abbreviations (for Democrats and Republicans) and state, and (where appropriate), a district number; e.g., `Bonner (R AL-1)`. This tag is also provided in the `legis.name` component of the returned rollcall object.

Poole and Rosenthal also make `dtl` files available for Congresses 1 through 106. These files contain information about the votes themselves, in a multiple-line per vote `ascii` format, and reside in the `dtl` director of Poole's web site, e.g., ftp://pooleandrosenthal.com/dtl/102s.dtl is the `dtl` file for the 102nd Senate. The default is to presume that no such file exists. When a `dtl` file is available, and is read, the `votes.data` attribute of the resulting `rollcall` object is a `data.frame` with one record per vote, with the following variables:

`date`

  vector of class `Date`, date of the rollcall, if available; otherwise `NULL`

`description`

  vector of mode `character`, descriptive text

The `dtl` files are presumed to have the date of the rollcall in the first line of text for each roll call, and lines 3 onwards contain descriptive text.

Finally, note also that the Poole/Rosenthal data sets often include the U.S. President as a pseudo-legislator, adding the announced positions of a president or the administration to the roll call matrix. This adds an extra “legislator” to the data set and can sometimes produce suprising results (e.g., a U.S. Senate of 101 senators), and a “legislator” with a surprisingly low party loyalty score (since the President/administration only announces positions on a relatively small fraction of all Congressional roll calls).

### Value

an object of class `rollcall`, with components created using the identifying information in the Poole/Rosenthal files. If the function can not read the file (e.g., the user specified a URL and the machine is not connected to the Internet), the function fails with an error message (set `debug=TRUE` to help resolve these issues).

### Author(s)

Simon Jackman simon.jackman@sydney.edu.au

### References

Poole, Keith and Howard Rosenthal. 1997. Congress: A Political-Economic History of Roll Call Voting. New York: Oxford University Press.

Poole, Keith. http://legacy.voteview.com

Rosenthal, Howard L. and Keith T. Poole. United States Congressional Roll Call Voting Records, 1789-1990: Reformatted Data [computer file]. 2nd ICPSR release. Pittsburgh, PA: Howard L. Rosenthal and Keith T. Poole, Carnegie Mellon University, Graduate School of Industrial Administration [producers], 1991. Ann Arbor, MI: Inter-university Consortium for Political and Social Research [distributor], 2000. http://www.icpsr.umich.edu/icpsrweb/ICPSR/studies/09822

### See Also

`rollcall`

### Examples

    ## Not run:
    h107 <- readKH("https://voteview.com/static/data/out/votes/H107_votes.ord",
                    desc="107th U.S. House of Representatives")

    s107 <- readKH("https://voteview.com/static/data/out/votes/S107_votes.ord",
                    desc="107th U.S. Senate")

    ## End(Not run)

[Package pscl version 1.5.2 Index]