Archivo:Delegate count for the 2016 Republican Party presidential primaries.svg

Ver la imagen en su resolución original((Imagen SVG, nominalmente 720 × 450 pixels, tamaño de archivo: 109 kB))

Resumen

Descripción
English: Delegate count for the 2016 Republican Party presidential primaries. Graph may not reflect the latest developments. Graph generated with an R script.
Fecha
Fuente Trabajo propio
Autor Abjiklam

Licencia

Yo, el titular de los derechos de autor de esta obra, la publico en los términos de la siguiente licencia:
w:es:Creative Commons
atribución compartir igual
Este archivo está disponible bajo la licencia Creative Commons Attribution-Share Alike 4.0 International.
Eres libre:
  • de compartir – de copiar, distribuir y transmitir el trabajo
  • de remezclar – de adaptar el trabajo
Bajo las siguientes condiciones:
  • atribución – Debes otorgar el crédito correspondiente, proporcionar un enlace a la licencia e indicar si realizaste algún cambio. Puedes hacerlo de cualquier manera razonable pero no de manera que sugiera que el licenciante te respalda a ti o al uso que hagas del trabajo.
  • compartir igual – En caso de mezclar, transformar o modificar este trabajo, deberás distribuir el trabajo resultante bajo la misma licencia o una compatible como el original.

Code

The graph is generated by the following R script:

library(RCurl)
library(reshape)
library(htmltab)
library(ggplot2)
library(stringr)
library(scales) # needed if your code breaks at date_format function
Sys.setlocale("LC_TIME", "English") # results are in en_US format, you may need to specifically tell R to treat them that way

#get the table from the url
theurl <- getURL("https://en.wikipedia.org/wiki/Results_of_the_Republican_Party_presidential_primaries,_2016", ssl.verifyPeer=FALSE)
table <- htmltab(theurl, which=7)

#keep only the useful columns and name them
df <- table[3:61, 1:ncol(table)-1]
names(df)[1:2] <- c("Date", "State")

#extract delegate count
for (i in 3:ncol(df)) {
  df[[i]] = str_extract_all(df[[i]], "[0-9,]+ delegate")
  df[[i]] = as.numeric(str_extract(df[[i]], "[0-9,]+"))
}

#sum up minor candidates
df[[7]] = rowSums(df[,7:14], na.rm=TRUE)
names(df)[7] = "Others"
df = df[,1:7]

#extract state names
df[[2]] = str_replace(df[[2]], "Binding[A-Za-z ]+", "")
df[[2]] = str_replace(df[[2]], "Territorial[A-Za-z ]+", "")
df[[2]] = str_replace(df[[2]], "State[A-Za-z ]+", "")
df[[2]] = str_replace(df[[2]], "District Co[A-Za-z ]+", "")
df[[2]] = str_replace(df[[2]], "District an[A-Za-z ]+", "")
df[[2]] = str_replace(df[[2]], "Conv[A-Za-z ]+", "")

#replace NA with 0
df[is.na(df)] = 0

#extract date or last day in date range
df$Date = sub("[0-9]+\\s*–\\s*([0-9]+)", "\\1", df$Date)
df$Date = sub("[0-9]+,\\s*([0-9]+)", "\\1", df$Date)
df$Date = as.Date(df$Date, format="%b %d")

#remove contests that haven't happened
df = df[rowSums(df[,3:7], na.rm=TRUE)!=0,]

#new dataframes for unique dates and cumulative count
df2 = data.frame(Date=unique(df$Date))
df3 = df2
for (i in 3:7) {
  df2[[names(df)[i]]] = rep(NA, length(df2$Date))
  df3[[names(df)[i]]] = rep(NA, length(df2$Date))
  for (j in 1:length(df2$Date)) {
    df2[[names(df)[i]]][j] = sum(subset(df, Date==df2$Date[j])[[names(df)[i]]])
    df3[[names(df)[i]]][j] = sum(df2[[names(df)[i]]][1:j])
  }
}

#reshape data so that candidate becomes a variable
mdata <- melt(df2, id=c("Date"))
mdata2 <- melt(df3, id=c("Date"))
names(mdata) <- c("Date", "Candidate", "Delegates")
mdata[["Cumulative"]] <- mdata2[, 3]

results = mdata

#nomination threshold
nomination <- data.frame(yintercept=1237, nomination=factor(1237))

#colors
colors <- c("#283681", "#29AB87", "#DAA520", "#C60E3B", "#000000")
labels = c("Trump", "Kasich", "Cruz", "Rubio", "Other")

#generate plot
d <- ggplot(results, aes(x=Date, y=Cumulative, group=Candidate, colour=Candidate)) + 
  geom_hline(aes(yintercept=yintercept, linetype=nomination), data=nomination, show.legend=TRUE) + 
  geom_path(size=1) +
  scale_color_manual(values=colors) + 
  scale_y_continuous(breaks=seq(0, 2000, 100), minor_breaks=seq(0, 2000, 50)) + 
  scale_x_date(limits=c(as.Date("2016/2/1"), as.Date("2016/7/21")),
               breaks=sort(c(seq(as.Date("2016/2/1"), as.Date("2016/7/21"), "month"),
                             seq(as.Date("2016/2/15"), as.Date("2016/7/14"), "month"),
                             as.Date("2016/7/21"))),
               labels=date_format("%b %d")) + 
  scale_linetype_manual(values=c("dashed")) + 
  labs(x="Date", y="Delegates", title="Delegate count", linetype="Nomination") + 
  theme(plot.background = element_rect(fill="transparent",colour = NA)) + 
  theme(legend.background = element_rect(fill="transparent",colour = NA))

#display plot
svg(filename="count.svg", 
    width=8, 
    height=5, 
    pointsize=12,
    bg="transparent")
d
dev.off()

Leyendas

Añade una explicación corta acerca de lo que representa este archivo

Elementos representados en este archivo

representa a

Historial del archivo

Haz clic sobre una fecha y hora para ver el archivo tal como apareció en ese momento.

Fecha y horaMiniaturaDimensionesUsuarioComentario
actual10:43 8 jun 2016Miniatura de la versión del 10:43 8 jun 2016720 × 450 (109 kB)Χupdate
01:46 27 may 2016Miniatura de la versión del 01:46 27 may 2016720 × 450 (158 kB)ByteflushUpdated (Washington primary)
15:17 22 may 2016Miniatura de la versión del 15:17 22 may 2016720 × 450 (156 kB)Χminor
15:16 22 may 2016Miniatura de la versión del 15:16 22 may 2016720 × 450 (157 kB)Χupdate
13:34 6 abr 2016Miniatura de la versión del 13:34 6 abr 2016484 × 333 (114 kB)Χupdate
16:45 4 abr 2016Miniatura de la versión del 16:45 4 abr 2016484 × 333 (109 kB)Χbetter
16:18 4 abr 2016Miniatura de la versión del 16:18 4 abr 2016484 × 333 (109 kB)ΧUser created page with UploadWizard

La siguiente página usa este archivo:

Metadatos