e

  1. (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.

  2. (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.
  3. (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).
  4. (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.
  5. (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.

  6. (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).
    [...]
    

Author: Karol' el Karleoj

Created: 2019-01-10 jue 14:19

Emacs 24.5.1 (Org mode 8.2.10)

Validate