Assignment - Web APIs

The New York Times web site provides a rich set of APIs, as described here: http://developer.nytimes.com/docs

You’ll need to start by signing up for an API key. (df956f71033315e19a189086a92e03b6%3A1%3A59370888)

Your task is to choose one of the New York Times APIs, construct an interface in R to read in the JSON data, and transform it to an R dataframe.

library(jsonlite)
library(knitr)

# NY Times Congress API Key: df956f71033315e19a189086a92e03b6:1:59370888

NY_TIMES_CONGRESS_HOUSE_MEMBERS_JSON_URL = 'http://api.nytimes.com/svc/politics/v3/us/legislative/congress/102-113/house/members/current.json?api-key=df956f71033315e19a189086a92e03b6%3A1%3A59370888'

json_file <- fromJSON(NY_TIMES_CONGRESS_HOUSE_MEMBERS_JSON_URL)
df <- as.data.frame(json_file$results$members)

The Following are a list of (the top 20) Members of Congress:

Subset with good UI:

kable(head(df[ , (names(df) %in% c('id','first_name','last_name','state','party','seniority','missed_votes'))], n = 20))
id first_name last_name party seniority missed_votes state
A000014 Neil Abercrombie D 4 30 HI
A000022 Gary Ackerman D 10 173 NY
A000103 William Alexander D 24 188 AR
A000109 Wayne Allard R 2 16 CO
A000121 George Allen R 2 4 VA
A000189 Glenn Anderson D 24 30 CA
A000209 Michael Andrews D 10 18 TX
A000210 Robert Andrews D 2 26 NJ
A000211 Thomas Andrews D 2 14 ME
A000212 Frank Annunzio D 28 48 IL
A000213 Beryl Anthony D 14 184 AR
A000214 Douglas Applegate D 16 21 OH
A000215 Bill Archer R 22 49 TX
A000217 Richard Armey R 2 26 TX
A000224 Leslie Aspin D 22 64 WI
A000226 Chester Atkins D 8 60 MA
A000337 Les AuCoin D 18 149 OR
B000008 Jim Bacchus D 2 33 FL
B000072 Richard Baker R 6 61 LA
B000104 Cass Ballenger R 6 38 NC

All columns with core UI:

head(df, n = 20)
##         id thomas_id
## 1  A000014         2
## 2  A000022         4
## 3  A000103        10
## 4  A000109        11
## 5  A000121        13
## 6  A000189        16
## 7  A000209        20
## 8  A000210        21
## 9  A000211        22
## 10 A000212        23
## 11 A000213        24
## 12 A000214        25
## 13 A000215        26
## 14 A000217        28
## 15 A000224        33
## 16 A000226        34
## 17 A000337        36
## 18 B000008        37
## 19 B000072        47
## 20 B000104        50
##                                                                                api_uri
## 1  http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000014.json
## 2  http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000022.json
## 3  http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000103.json
## 4  http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000109.json
## 5  http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000121.json
## 6  http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000189.json
## 7  http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000209.json
## 8  http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000210.json
## 9  http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000211.json
## 10 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000212.json
## 11 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000213.json
## 12 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000214.json
## 13 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000215.json
## 14 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000217.json
## 15 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000224.json
## 16 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000226.json
## 17 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/A000337.json
## 18 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/B000008.json
## 19 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/B000072.json
## 20 http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/B000104.json
##    first_name middle_name   last_name party twitter_account
## 1        Neil        <NA> Abercrombie     D neilabercrombie
## 2        Gary          L.    Ackerman     D repgaryackerman
## 3     William      Vollie   Alexander     D                
## 4       Wayne          A.      Allard     R                
## 5      George       Felix       Allen     R                
## 6       Glenn     Malcolm    Anderson     D                
## 7     Michael        <NA>     Andrews     D                
## 8      Robert          E.     Andrews     D      RepAndrews
## 9      Thomas          H.     Andrews     D                
## 10      Frank        <NA>    Annunzio     D                
## 11      Beryl    Franklin     Anthony     D                
## 12    Douglas        <NA>   Applegate     D                
## 13       Bill        <NA>      Archer     R                
## 14    Richard          K.       Armey     R                
## 15     Leslie        <NA>       Aspin     D                
## 16    Chester   Greenough      Atkins     D                
## 17        Les        <NA>      AuCoin     D                
## 18        Jim        <NA>     Bacchus     D                
## 19    Richard        Hugh       Baker     R                
## 20       Cass        <NA>   Ballenger     R                
##    facebook_account facebook_id                       url
## 1                                                        
## 2                                                        
## 3                                                        
## 4                                                        
## 5                                                        
## 6                                                        
## 7                                                        
## 8                               http://andrews.house.gov/
## 9                                                        
## 10                                                       
## 11                                                       
## 12                                                       
## 13                                                       
## 14                                                       
## 15                                                       
## 16                                                       
## 17                                                       
## 18                                                       
## 19                                                       
## 20                                                       
##                             rss_url            domain dw_nominate
## 1                                                                
## 2                                                                
## 3                                                                
## 4                                                                
## 5                                                                
## 6                                                                
## 7                                                                
## 8  http://andrews.house.gov/rss.xml andrews.house.gov            
## 9                                                                
## 10                                                               
## 11                                                               
## 12                                                               
## 13                                                               
## 14                                                               
## 15                                                               
## 16                                                               
## 17                                                               
## 18                                                               
## 19                                                               
## 20                                                               
##    ideal_point seniority total_votes missed_votes total_present state
## 1                      4         932           30             0    HI
## 2                     10         932          173             0    NY
## 3                     24         932          188             0    AR
## 4                      2         932           16             0    CO
## 5                      2         545            4             1    VA
## 6                     24         932           30             0    CA
## 7                     10         932           18             0    TX
## 8                      2         932           26             0    NJ
## 9                      2         932           14             0    ME
## 10                    28         932           48             0    IL
## 11                    14         932          184             0    AR
## 12                    16         932           21             0    OH
## 13                    22         932           49             0    TX
## 14                     2         932           26             0    TX
## 15                    22         932           64             0    WI
## 16                     8         932           60             0    MA
## 17                    18         932          149             0    OR
## 18                     2         932           33             0    FL
## 19                     6         932           61             0    LA
## 20                     6         932           38             1    NC
##    district missed_votes_pct votes_with_party_pct
## 1         1             3.22                87.03
## 2         7            18.56                89.86
## 3         1            20.17                86.29
## 4         4             1.72                82.21
## 5         7             0.73                83.55
## 6        32             3.22                85.14
## 7        25             1.93                78.88
## 8         1             2.79                79.03
## 9         1             1.50                85.40
## 10       11             5.15                86.99
## 11        4            19.74                85.03
## 12       18             2.25                76.40
## 13        7             5.26                78.82
## 14       26             2.79                79.80
## 15        1             6.87                84.79
## 16        5             6.44                86.12
## 17        1            15.99                86.59
## 18       11             3.54                82.76
## 19        6             6.55                85.53
## 20       10             4.08                83.89