e
- (1 punto) En esta carpeta hay datos sobre contaminación del aire en Asturias.
Hay una carpeta por cada año. En cada carpeta de ésas, el nombre del fichero
contiene el identificador de la estación. En esta tabla mira cuál te corresponde:
ALICIA vale002 SERGIO vale003 Judith vale004 Denise vale005 Aida vale006 PAULA vale007 Cristina vale008 Nadia vale009 Adrián vale010 Mario vale011 CESAR vale012 Sara vale015 Elisabeth vale016 PATRICIA vale018 Pablo vale021 Iván vale022 Joaquín vale027
Carga los datos en R del fichero de 2018 que te corresponda y haz una descripción general de las variables (qué variables hay [fecha, hora…]) y cuáles contienen un número considerable de datos.
- (1 punto) Haz una gráfica de la evolución de la concentración de algún contaminante (partículas PM10; partículas2,5; SO2…) en función de la fecha.
- (1 punto) Haz una gráfica de la concentración de algún contaminante
(partículas PM10; partículas2,5; SO2…) en función de la hora
(
PERIODO_HI
). - (1 punto) Haz una gráfica de la concentración de algún contaminante (partículas PM10; partículas2,5; SO2…) en función del día de la semana.
- (1 punto) Puedes generar un dataframe a partir de un fichero remoto mediante una orden como
d <- read.csv (url ("http://..."))
Haz un bucle en R para leer los datos de la estación que te corresponda desde 2010 hasta 2018 y júntalos todos en dataframe único. Si no puedes hacerlo para todas las columnas, hazlo al menos para las fechas y horas y algún contaminante con datos.
- (2 puntos) Considera este fichero cuyo contenido es
"id interno moodle";"identificador uniovi";Apellidos;Nombre 369399;uo273033;"MARTINEZ GARCIA";"ALICIA MARIA" 304760;uo240113;"FERNÁNDEZ FERNÁNDEZ";SERGIO 303179;uo238865;"Marcos Verdejo";Judith 293151;uo231086;"Cuervo Suárez";Denise 374709;uo73854;"Riesgo Alonso";Aida 310129;uo244665;"MARRON SANTOS";PAULA 280543;uo220998;"Fernández González";Cristina 296064;uo232749;"Díaz Fernández";Nadia 310426;uo244809;"López Fernández";Adrián 286157;uo224854;"Merlo Bárcena";Mario 371273;uo273824;"CARREÑO JIMENEZ";"CESAR EDUARDO" 367649;uo272276;"Álvarez Quintana";Sara 368416;uo183153;"Martínez Medina";Elisabeth 250257;uo158957;"ACEBES TAMARGO";PATRICIA 311670;uo246251;"Menéndez Landa";Pablo 295870;uo232616;"Rodríguez Aparicio";Iván 368544;uo798;"García Abad";Joaquín 370203;uo273262;LIU;YUXIN
Considera este programa que contiene las siguientes órdenes de Bash:
iconv -f ISO-8859-1 -t UTF-8 Usuarios_T_S,A_MANADINE-1-006.csv > usuarios.csv ## +2 para quitar cabecera tail -n +2 usuarios.csv | cut -d';' -f4 | tr '[A-Z]' '[a-z]' | tr -d '"' | cut -d' ' -f1 | iconv -f UTF-8 -t ASCII//TRANSLIT | grep -v yuxin > nombres.txt tail -n +2 usuarios.csv | grep -vi yuxin | cut -d';' -f2 | cut -c 3- > contras.txt tail -n +2 usuarios.csv | cut -d';' -f4,3 --output-delimiter=', ' | tr -d '"' | grep -v YUXIN > nombres-completos.txt ## como "root": addgroup manadine18 addgroup manadine cat useradd.R | R --vanilla
Considera este otro programa en R cuyo contenido es
anno <- "18" contras <- as.character (read.table("contras.txt")[[1]]) nombres <- as.character (read.table("nombres.txt")[[1]]) nombres.completos <- as.character (read.delim ("nombres-completos.txt", header=FALSE) [[1]]) stopifnot (length (contras) == length (nombres)) stopifnot (length (contras) == length (nombres.completos)) for (i in 1 : length(contras)) { nombre <- paste0 (nombres[[i]], anno) # para que no coincidan con los de otros an~os contra <- contras[[i]] nombre.completo <- nombres.completos[[i]] cadena <- paste0 ("useradd -b /home/manadine/2018-20/ -c '", nombre.completo, "' ", " -g manadine18 -G users,manadine -m -N ", " -p ", system (paste ("mkpasswd", contra, anno), intern=TRUE), " -s /bin/bash ", nombre) system (cadena) }
El objetivo de todo lo anterior fue crear las cuentas de alumno en el ordenador carleos2.epv.uniovi.es.
Explica cómo funcionan los anteriores programas de Bash y R. Por ejemplo se puede empezar así:
El fichero Usuarios_T_S,A_MANADINE-1-006.csv es un fichero de texto con formato CSV, es decir, con un registro por cada renglón y campos separados por punto y coma. Contiene información de alumnos: un identificador que desconozco; un identificador del correo de la uni; apellidos; nombre. El primer renglón del fichero es una cabecera con los nombres de los campos y los datos están a partir del segundo renglón. El programa de Bash empieza ejecutando la orden «iconv». Si hago «man iconv» leo que «convert text from one character encoding to another», así que cambia la codificación de un texto. Parece que la cambia de ISO-8859-1 a UTF-8, porque la opción «-f» equivale a «--from-code» y la opción «-t» equivale a «--to-code» según «man iconv». El resultado se guarda (mediante la redirección «>») en el fichero «usuarios.csv». A mí este comando no me hace falta porque en vez de descargar el fichero he copiado y pegado su contenido directamente desde el navegador, y veo bien las eñes y las vocales acentuadas. El renglón «## +2 para quitar cabecera» empieza por almohadilla y es un comentario. No se ejecuta. El siguiente renglón encadena muchas órdenes: tail -n +2 usuarios.csv | cut -d';' -f4 | tr '[A-Z]' '[a-z]' | tr -d '"' | cut -d' ' -f1 | iconv -f UTF-8 -t ASCII//TRANSLIT | grep -v yuxin > nombres.txt La orden «tail» saca el final de un fichero. Según «man tail» la opción significa: «use -n +NUM to output starting with line NUM», así que «tail -n +2» saca a partir del segundo renglón, o sea, que se usa para omitir la cabecera (el primer renglón). [...]