dropRollCall: drop user-specified elements from a rollcall object

View source: R/dropRollCall.r

dropRollCallR Documentation

drop user-specified elements from a rollcall object

Description

Drop user-specified elements of rollcall object, returning a roll call object.

Usage

dropRollCall(object, dropList,debug=FALSE)

Arguments

object

an object of class rollcall

dropList

a list (or alist) with some (or all) of the following components:

codes

character or numeric, possibly a vector. If character, it should match the names of object$codes, indicating the set of entries in object$votes to be set to NA. If numeric, then codes indicates the entries in object$votes that will be set to NA.

lop

numeric, non-negative integer, less than number of legislators represented in object. Roll calls with lop or fewer legislators voting in the minority are dropped.

legisMin

numeric, non-negative integer, less than number of roll calls represented in object. Legislators with legisMin or fewer votes are dropped.

dropLegis

an expression that evaluates to mode logical, vector of length equal to the number of legislators represented in object. The expression is evaluated in the legis.data component of the rollcall object. Legislators for whom the expression evaluates to TRUE are dropped.

dropVotes

an expression that evaluates to mode logical, vector of length equal to the number of rollcalls represented in object. The expression is evaluated in the vote.data component of the rollcall object. Rollcalls for which the expression evaluates to TRUE are dropped.

debug

logical, set to TRUE to see messages printed to the console as inspection and subsetting of the rollcall object takes place

Details

It is often desirable to restrict the analysis of roll call data in various ways. For one thing, unanimous votes provide no information discriminating among legislators: hence, summary and analysis should almost always use dropList=list(lop=0). See the examples for other possibilities, limited only by the information supplied in legis.data and votes.data.

Value

An object of class rollcall with components modified/added by the subsetting indicated in the dropList.

Note

With the exception of codes, each component of dropList generates a vector of mode logical, either with respect to legislators or votes. These logical vectors are then combined element-wise, such that if any one of the subsetting restrictions is TRUE for a particular legislator or vote, then that legislator or vote is dropped. Some summaries are reported to the console along the way if debug=TRUE.

dropRollCall adds a component named dropInfo to the rollcall object it returns. This component is itself a list containing named components

legislators

a vector of mode logical, with each element TRUE if the legislator is retained in the returned rollcall object.

votes

a vector of mode logical, with each element TRUE if the corresponding is retained in the returned rollcall object.

dropList

the dropList supplied as input to dropRollCall.

If the input rollcall object is itself the product of a call to dropRollCall, the dropInfo component on output is a list with named components

previous

the dropInfo component of the input rollcall object.

new

the dropInfo list created by the current call to dropRollCall.

Functions like summary.rollcall try to handle this information sensibly.

When dropList uses the dropLegis or dropVotes components then dropList should be constructed via the alist command; this ensures that the dropLegis and dropVotes components of dropList are objects of mode expression, and evaluated to mode logical in the legis.data and vote.data environments by the function, if possible (rather than being evaluated immediately in the environment calling dropRollCall or constructing dropList). See the examples. This is not entirely satisfactory, and behavior more like the subset argument in function lm would be preferable.

Author(s)

Simon Jackman simon.jackman@sydney.edu.au

See Also

dropUnanimous, summary.rollcall, ideal, alist.

Examples

data(s109)
s109.working <- dropRollCall(s109,
                             dropList=list(lop=0))
summary(s109.working)

s109.working <- dropRollCall(s109,
                             dropList=list(lop=0,
                               code="notInLegis"))
summary(s109.working)

s109.working <- dropRollCall(s109,
                             dropList=list(lop=3,
                               code="notInLegis"))
summary(s109.working)

## note use of alist, since dropLegis is an expression
dropList <- alist(lop=3,
                 dropLegis=party!="D",
                 code="notInLegis")
s109.working <- dropRollCall(s109,dropList=dropList,debug=TRUE)
summary(s109.working)

s109.working <- dropRollCall(s109.working,dropList=list(legisMin=25))
summary(s109.working)


## Not run: 
## read 102nd House from Poole web site
h102 <- readKH("ftp://voteview.ucsd.edu/dtaord/hou102kh.ord")

## drop President from roll call matrix
h102 <- dropRollCall(h102,
                     dropList=alist(dropLegis=state=="USA"))
summary(h102)

## End(Not run)

pscl documentation built on May 31, 2023, 5:17 p.m.