Create a gist now

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 = "http://cran.us.r-project.org")}
lapply(toInstall, library, character.only = TRUE)
myURL <- "http://en.wikipedia.org/wiki/United_States_presidential_election,_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?)
head(stateTable)
# Clean up:
stateTable <- stateTable[1:(nrow(stateTable)-2), ] # Drop summary lines
stateTable$State <- do.call(rbind, 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)), ]
@ClintWeathers

This comment has been minimized.

Show comment Hide comment
@ClintWeathers

ClintWeathers 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

                          V1

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

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

                          V1

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

@dsparks

This comment has been minimized.

Show comment Hide comment
@dsparks

dsparks Dec 2, 2012

Thanks! Fixed the Gist.

Owner

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