Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
XML package example
doInstall <- TRUE
toInstall <- c("XML")
if(doInstall){install.packages(toInstall, repos = "")}
lapply(toInstall, library, character.only = TRUE)
myURL <- ",_2012"
allTables <- readHTMLTable(myURL)
str(allTables) # Look at the allTables object to find the specific table we want
stateTable <- allTables[[14]] # We want the 14th table in the list (maybe 13th?)
# Clean up:
stateTable <- stateTable[1:(nrow(stateTable)-2), ] # Drop summary lines
stateTable$State <-, strsplit(as.character(stateTable$State), "\\["))[, 1]
stateTable$State[stateTable$State == "District of ColumbiaDistrict of Columbia"] <- "District of Columbia"
whichAreNumeric <- colMeans(apply(stateTable, 2, function(cc){
regexpr(",", cc) != -1})) > 0
stateTable[, whichAreNumeric] <- apply(stateTable[, whichAreNumeric], 2, function(cc){
as.numeric(gsub(",", "", cc))})
# Display in order of Obama's proportion of the vote:
stateTable[, c("State", "Obama", "Romney")][with(stateTable, order(Obama/Total)), ]

This comment has been minimized.

Copy link

@ClintWeathers ClintWeathers commented Dec 2, 2012

Should that be table 14? Table 13 appears to just be the summary "table" right above it.

Using table 13:

stateTable 2 obs. of 1 variables


1 States/districts won by Obama
2 States/districts won by Romney


This comment has been minimized.

Copy link
Owner Author

@dsparks dsparks commented Dec 2, 2012

Thanks! Fixed the Gist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment