Como otros compañeros ya han utilizado el dataset de ejemplo, y como prácticamente ya están realizadas todas las acciones de limpieza, he buscado otro dataset para realizar la actividad.
He utilizado el repositorio de datos abiertos de la administración general del estado, llamado “datos.gob.es”, y he utilizado el denominado catálogo de datos.
Dentro del catálogo, he utilizado el filtro de los ficheros en formato .csv del sector público, y he empleado el primer dataset que aparece, que es un conjunto de notas de prensa del Ciemat, que me ha parecido que es susceptible de limpiarlo para poder ser utilizado.
Concretamente el fichero se encuentra en el siguiente enlace: https://sede.ciemat.gob.es/SEDEportal/recursos/opendata/NotasPrensa.csv
Nos descargamos el fichero en el directorio de trabajo y lo nombramos como ciematmessy
Leemos el fichero ciematmessy.csv del directorio de trabajo y lo almacenamos en un data.frame del mismo nombre
ciematmessy <- read.csv("./ciematmessy.csv",row.names=NULL, sep=";",
header=TRUE)
Vamos a comprobar el tamaño, estructura y visualización del dataset ciematmessy
dim(ciematmessy)
[1] 270 3
str(ciematmessy)
‘data.frame’: 270 obs. of 3 variables: $ Titulo: Factor w/ 267 levels “"El Mundo Anillo. Viaje a un exoplaneta", próximamente en su sala favorita”,..: 249 130 214 64 47 125 238 55 54 1 … $ Fecha : Factor w/ 245 levels “2005-02-23”,“2005-06-15”,..: 245 244 243 242 241 240 239 238 237 236 … $ URL : Factor w/ 270 levels “http://www.ciemat.es/recursos/notasPrensa/”,..: 255 25 164 20 215 201 100 156 46 269 …
head(ciematmessy$Titulo)
[1] Un vector de terapia génica para tratar la deficiencia en piruvato quinasa es declarado medicamento huérfano en Estados Unidos
[2] Expertos internacionales explican sus avances en terapia génica para tratar enfermedades hematológicas
[3] Presentación en Miraflores de la Sierra del Estudio del potencial fotovoltaico del municipio
[4] El CEDER de Lubia celebró en costa Rica la tercera edición del Congreso Iberoamericano sobre Microrredes con generación distribuida de renovables [5] Demostración de desbroce, empacado y valorización energética de matorral en el CEDER-CIEMAT con maquinaria innovadora
[6] Estreno de la pelÃcula “El Mundo Anillo. Viaje a un exoplaneta” en el Planetario CETA-CIEMAT
267 Levels: “El Mundo Anillo. Viaje a un exoplaneta”, próximamente en su sala favorita …
head(ciematmessy$Fecha)
[1] 2016-04-05 2016-02-08 2016-01-26 2015-12-14 2015-11-16 2015-10-16 245 Levels: 2005-02-23 2005-06-15 2005-06-28 2005-07-03 … 2016-04-05
head(ciematmessy$URL)
[1] http://www.ciemat.es/recursos/notasPrensa/886056223_542016115142.pdf
[2] http://www.ciemat.es/recursos/notasPrensa/1250750008_822016123859.pdf
[3] http://www.ciemat.es/recursos/notasPrensa/267194921_2612016105514.pdf
[4] http://www.ciemat.es/recursos/notasPrensa/1215890362_14122015113446.pdf [5] http://www.ciemat.es/recursos/notasPrensa/606606039_1611201516834.pdf
[6] http://www.ciemat.es/recursos/notasPrensa/522381137_16102015121946.pdf 270 Levels: http://www.ciemat.es/recursos/notasPrensa/ …
Creamos un data.frame nuevo llamado ciemat clonado del original para poder comparar ambos data frames después de la limpieza
ciemat <- ciematmessy
Vamos a limpiar de caracteres especiales la columna del título. Para ello incorporamos las tildes de las vocales, la ñ de nuestro alfabeto y algunos caracteres especiales como la moneda, el signo de interrogación y algunas abreviaturas
# primero colocamos la ñ
ciemat$Titulo <- gsub("ñ","ñ",ciemat$Titulo )
# luego seguimos con las vocales que llevan tilde
ciemat$Titulo <- gsub("á","á",ciemat$Titulo )
ciemat$Titulo <- gsub("é","é",ciemat$Titulo )
ciemat$Titulo <- gsub("É","É",ciemat$Titulo )
ciemat$Titulo <- gsub("ó","ó",ciemat$Titulo )
ciemat$Titulo <- gsub("ú","ú",ciemat$Titulo )
ciemat$Titulo <- gsub("Ã","í",ciemat$Titulo )
# seguimos con algunos caracteres especiales
ciemat$Titulo <- gsub("º","º",ciemat$Titulo )
ciemat$Titulo <- gsub("ª","ª",ciemat$Titulo )
ciemat$Titulo <- gsub("M¿","M€",ciemat$Titulo )
ciemat$Titulo <- gsub("¿","¿",ciemat$Titulo )
Las notas de prensa con ref 202 a 208 aparecen en mayúsculas y las vamos a poner en minúsculas como el resto de las notas
for (i in 202:208) {ciemat$Titulo[i] <-
tolower(ciemat$Titulo[i])}
Vamos a convertir la variable fecha que es un factor a tipo fecha y la convertimos de tipo anglosajona en tipo española
ciemat$Fecha <- as.Date(ciemat$Fecha)
ciemat$Fecha <- format(ciemat$Fecha, "%d %m %Y")
visualizamos las primeras u últimas filas del data.frame ya limpio para comparar con el original.
# visualizamos el resultado final antes de guardar
head(ciemat$Titulo)
[1] “Un vector de terapia génica para tratar la deficiencia en piruvato quinasa es declarado medicamento huérfano en Estados Unidos”
[2] “Expertos internacionales explican sus avances en terapia génica para tratar enfermedades hematológicas”
[3] “Presentación en Miraflores de la Sierra del Estudio del potencial fotovoltaico del municipio”
[4] “El CEDER de Lubia celebró en costa Rica la tercera edición del Congreso Iberoamericano sobre Microrredes con generación distribuida de renovables” [5] “Demostración de desbroce, empacado y valorización energética de matorral en el CEDER-CIEMAT con maquinaria innovadora”
[6] “Estreno de la película "El Mundo Anillo. Viaje a un exoplaneta" en el Planetario CETA-CIEMAT”
head(ciemat$Fecha)
[1] “05 04 2016” “08 02 2016” “26 01 2016” “14 12 2015” “16 11 2015” [6] “16 10 2015”
Guardando el data.frame limpio en un fichero dentro del directorio de trabajo con el nombre ciemattidy. Lo vamos a dejar en inglés…
write.csv(ciemat, "ciemattidy.csv", row.names=FALSE)