Archivo de la etiqueta: gsub

Un homenaje a Malthus con R

Hoy quería yo revindicar la figura de un tipo bastante maltratado: Thomas Malthus. Maltratado porque era un poco reaccionario y facha, y parece que eso es suficiente para que se olviden de uno, aunque fuera el tipo que más ha aportado a la demografía.Y el homenaje tenía que hacérselo con el paquete de R que más utilizo últimamente, el XML y algunos sencillos gráficos creados con R-commander. Malthus lo que venía a decir es que somos muchos, demasiados y encima la cosa tenía muy mala pinta. Parece que tiene razón, pero vamos a verlo gráficamente. Comenzamos:

library(XML)
pag="http://en.wikipedia.org/wiki/World_population"
total_tablas=readHTMLTable(pag)
str(total_tablas)

Nos interesa saber la población estimada y tenemos 17 elementos. Nos vamos a quedar con las estimaciones desde el siglo XVIII en adelante. Tenemos el problema con los formatos de los números:


poblacion=data.frame(total_tablas$`Estimated world population at various dates (in millions) [citation needed]`)
#NOS QUEDAMOS CON LOS REGISTROS QUE NOS INTERESAN
poblacion=poblacion[c(16:nrow(poblacion)-1),]
#FUNCION PARA TRANSFORMAR CARACTER A NUMERO
cambio=function(x){
x=(gsub("([[:punct:]])","",x))
x=(gsub("([[:alpha:]])","",x))
#AJUSTE A MEDIDA, POR NO COMPLICAR LA FUNCION
x=as.numeric(gsub(" 1 ","",x))}
#PODEMOS USAR SAPPLY:
poblacion$Year=cambio(poblacion$Year)
poblacion$World=cambio(poblacion$World)
poblacion$Africa=cambio(poblacion$Africa)
poblacion$Asia=cambio(poblacion$Asia)
poblacion$Europe=cambio(poblacion$Europe)
poblacion$Latin.America.Note.1.=cambio(poblacion$Latin.America.Note.1.)
poblacion$Northern.America.Note.1.=cambio(poblacion$Northern.America.Note.1.)
poblacion$Oceania=cambio(poblacion$Oceania)

Analicemos si Malthus tenía motivos para ser tan cenizo Seguir leyendo Un homenaje a Malthus con R