A quick look at the voting behavior of the 30 House Democrats that represent congressional districts carried by Trump in 2016. Using
Rvoteview. For a more in-depth account of the characteristics of front-line House Democrats in the 116th Congress, see this post.
Front-line House Democrats
I have been going on about the House of Representatives quite a bit lately, especially Democratic members representing Trump districts. These guys were instrumental in Democrats recapturing the House majority in 2018. Over two-thirds of these front-liners are freshman members, and as a group they are super vulnerable heading into November 2020.
I have posted a list of the 30 front-liners as a simple csv, cached as a part of the
uspoliticalextras data package. It is available at the link below.
library(tidyverse) url1 <- 'https://raw.githubusercontent.com/jaytimm/uspoliticalextras/master/clean-data-sets/thirty-one-house-democrats.csv' fl <- read.csv(url(url1))
Ideologies in the 116th
So, using the
Rvoteview (!) package, we obtain DW-Nominate scores for all members in the 116th House. This session is still in progress, so these numbers will change depending on when they are accessed.
x116 <- Rvoteview::member_search (chamber = 'House', congress = 116) %>% mutate(label = gsub(', .*$', '', bioname), party_code = ifelse(bioname %in% fl$house_rep, 'xx', party_code), party_name = ifelse(bioname %in% fl$house_rep, 'Frontline Dems', 'Other Dems'))
The plot below summarizes voting behaviors as approximated by DW-Nominate scores in two dimensions. Here, our focus is on the first dimension (ie, the x-axis). The 30 front-liners are marked in orange. In the aggregate, then, they vote more moderately than their non-front-line Democrat peers.
p <- x116 %>% ggplot(aes(x=nominate.dim1, y=nominate.dim2, label = label )) + annotate("path", x=cos(seq(0,2*pi,length.out=300)), y=sin(seq(0,2*pi,length.out=300)), color='gray', size = .25) + geom_point(aes(color = as.factor(party_code)), size= 2.5, shape= 17) + theme_bw() + ggthemes::scale_color_stata() + theme(legend.position = 'none') + labs(title="DW-Nominate ideology scores for the 116th US House", subtitle = '30 front-line House Democrats in orange') p
## Warning: Removed 2 rows containing missing values (geom_point).
Focusing on Democrats
Next, we home in a bit on House Democrats. To add some context to the above plot, we calculate quartiles for DW-Nominate scores among Democrats. These are summarized in table below, ranging from progressive to moderate.
dems <- x116 %>% filter(party_code %in% c('xx', '100')) qq <- data.frame(x = quantile(dems$nominate.dim1, probs = seq(0, 1, 0.25)), stringsAsFactors = FALSE) qq %>% knitr::kable()
We add these quartiles to the plot below, and label front-line House Democrats. Again, front-liners cluster as a group in terms of roll call voting behavior. The most notable exception to this pattern is Lauren Underhood (IL-14). She won her district by five points in 2018, and Trump won the district by 4 points in 2016. It would appear, then, that her voting behavior and the political ideology of her constituents do not especially rhyme. In other words, she represents a Trump district and votes like a progressive.
p1 <- p + xlim(-1, 0) + geom_vline(xintercept = qq$x, linetype = 2, color = 'gray') + ggrepel::geom_text_repel( data = filter(x116, bioname %in% fl$house_rep), nudge_y = -0.005, direction = "y", hjust = 0, size = 2.5) p1
The table below summarizes counts of Democrats by front-line status & ideology quartile. So, roughly 3/4 of front-liners vote in the most moderate Democratic quartile in the House. And all but Underwood are in top 50%.
dems1 <- dems %>% mutate(qt = ntile(nominate.dim1, 4)) dems1 %>% group_by(party_name, qt) %>% count() %>% group_by(party_name) %>% mutate(per = round(n/sum(n)*100, 1)) %>% knitr::kable(booktabs = T, format = "html") %>% kableExtra::kable_styling() %>% kableExtra::row_spec(3, background = "#e4eef4")
Support this group of House members!! Follow them on Twitter!
|RepRonKind | DaveLoebsack | RepCheri | RepSeanMaloney | RepCartwright | repohalleran | RepJoshG | RepConorLamb | replucymcbath | RepFinkenauer | RepCindyAxne | RepUnderwood | RepSlotkin | RepHaleyStevens | RepAngieCraig | RepChrisPappas | RepAndyKimNJ | RepSherrill | RepTorresSmall | RepSusieLee | RepMaxRose | repdelgado | RepBrindisi | RepKendraHorn | RepCunningham | RepBenMcAdams | RepElaineLuria | RepSpanberger | repgolden|