Aqui veras como descargar data de una tabla que está en la web. El proceso es sencillo, pero requiere concentración. El ejemplo aqui esta planteado usando GoogleChrome.
Vamos a ver una data sobre muertos en guerras en wikipedia:
Guarda el link de wiki en un objeto de R, aqui el objeto se llama LINKGUERRAS:
LINKGUERRAS = "https://en.wikipedia.org/wiki/List_of_wars_by_death_toll"
Visita ese link, y ve con el mouse a cada tabla (son 3). Elije la opcion inspeccionar usando el boton derecho:
Si ya has encontrado la tabla en los codigos, copia el XPATH (usando el boton derecho del mouse):
Has eso para cada una de las tres tablas:
library(htmltab) #instalemos primero
ancient = htmltab(doc = LINKGUERRAS,
which ='//*[@id="mw-content-text"]/div/table[4]') # aqui va XPATH
medieval = htmltab(doc = LINKGUERRAS,
which ='//*[@id="mw-content-text"]/div/table[6]') # aqui va XPATH
## Warning: Columns [Notes] seem to have no data and are removed. Use
## rm_nodata_cols = F to suppress this behavior
modern = htmltab(doc = LINKGUERRAS,
which ='//*[@id="mw-content-text"]/div/table[7]') # aqui va XPATH
## Warning: Columns [Notes] seem to have no data and are removed. Use
## rm_nodata_cols = F to suppress this behavior
Mira las columas que tienes:
names(ancient)
## [1] "War" "Deathrange" "Date" "Combatants" "Location"
## [6] "Notes"
names(medieval)
## [1] "War" "Deathrange" "Date" "Combatants" "Location"
names(modern)
## [1] "War" "Deathrange" "Date" "Combatants" "Location"
Quieres combinar los tres en uno solo. Eso se puede hacer si todas las columnas tienen nombres identicos.
Quedate con estas columnas:
guerras1=ancient[,c("War","Location")]
guerras2=medieval[,c("War","Location")]
guerras3=modern[,c("War","Location")]
Cada data frame tiene ahora 2 columnas cada uno.
Usa la funcion rbind para poner las tablas una debajo de la otra:
guerras=rbind(guerras1,guerras2,guerras3)
El dataframe guerras tiene todo:
str(guerras)
## 'data.frame': 166 obs. of 2 variables:
## $ War : chr "Conquests of Cyrus the Great" "Greco–Persian Wars" "Samnite Wars" "Wars of Alexander the Great" ...
## $ Location: chr "Middle East" "Greece" "Italy" "Middle East / North Africa / Central Asia / India" ...
Ahora a analizar la columna Location (la unica que vale la pena y es nominal).
library(ggplot2)
mititulo="Ubicacion de las Guerras en la historia"
misubtitulo="Solo con mas 25000 muertos"
base = ggplot(data=guerrasTable,aes(x=Paises,
y=Conteo))
bar1 = base + geom_bar(stat='identity')
bar1 = bar1 + labs(x="Pais/zona", y="Cantidad",
title=mititulo,
subtitle = misubtitulo,
caption = "Fuente: Wikipedia")
bar1= bar1 + theme(axis.text.x =
element_text(angle = 0,
size=10,
hjust = 1))
bar1 + theme(axis.text.x = element_text(angle = 25,size=5,hjust = 1))
Cual es el código para calcular la moda de la columna pais/zona?
Cual es el indice de HH para la columna pais/zona?
Cual es el indice de Representatividad Efectiva (Laakso - Taagepera)