En este ejercicio vamos a trabajar con la estructura de datos ‘dataframe’.
A partir de un fichero con datos de estaciones meteorológicas obtenido del Banco Nacional de Datos Climatológicos (BNDC) de AEMET, vamos a crear un dataframe y realizar distintas operaciones para mostrar cómo se manipulan objetos de esta clase, seleccionando aquellas filas o columnas que nos interesen. Veremos también el tipo factor con más detalle y el paquete ‘dplyr’ para manipular dataframes. Por último, guardaremos los resultados en un fichero.
Borramos todos los objetos almacenados en nuestro entorno de trabajo
Para ver los objetos que tenemos cargados en memoria usamos
ls().
Vamos a borrar todos los objetos que tengamos creados en nuestro “Global
environment” antes de hacer nuestro ejercicio.
Comprobamos nuestro directorio de trabajo
Para ver la ruta de nuestro directorio de trabajo usamos getwd().
Leemos el fichero ‘datos.csv’
Para saber qué parámetros debemos poner en la función de lectura del fichero, primero abrimos el fichero y vemos si tiene cabecera, qué separador se usa, etc.
Usamos la función ‘read.table’ para leer el fichero y guardamos el
objeto creado con el nombre ‘datos’. Comprobamos que pertenece a la
clase ‘dataframe’.
Resumen del contenido del objeto
Vemos un resumen de todo el contenido del objeto ‘datos’ creado
usando la función ‘summary’.
Otras características del objeto
Vemos la estructura de ‘datos’, el tipo de almacenamiento interno que
usa R y su dimensión.
Extraemos información del dataframe de una columna determinada
Extraemos los indicativos de todas las estaciones:
Filas que cumplen alguna condición en alguna de las columnas
Selecciona aquella fila cuyo indicativo tiene un determinado valor: “1083L”. Queremos saber cuántas estaciones tenemos por encima de 800 metros.
Leyendo los campos “character” del fichero como “factor”
Leemos el fichero de tal manera que nos devuelva un dataframe en el
que los campos “character” del fichero los tranforme en “factor”.
Convirtiendo a factor sólo algunas columnas
Como nos interesa transformar a factor la columna NOM_PROV, en lugar
de leer el fichero de nuevo, vamos a transformar esa columna a factor y
el resto de las variables ‘character’ las dejamos como están. Además
vamos a transformar la columna ‘DATUM’ también a tipo ‘factor’ con dos
niveles, “ETRS89” y “WGS84”.
Filtrando filas y seleccionando columnas
Queremos crear un nuevo dataframe con los datos de las temperaturas
máximas y mínimas del día 1 de las estaciones que pertenecen las
provincias de Málaga y Madrid.
Manipulando filas y columnas con el paquete ‘dplyr’
Carga el paquete ‘dplyr’ para trabajar con él si aún no lo has
cargado. Selecciona aquellas estaciones de la comunidad de CANTABRIA que
superaron el día 20 los 10ºC de máxima, usando el método filter().
Ordenar el resultado anterior por altitud de la estación en orden
decreciente. Muestra las 8 estacionesque tienen la altitud menor de las
obtenidas en el apartado anterior. Renombrar la columna que indentifica
a la estación como ‘IND’. Añade una nueva columna que guarde la
temperatura máxima del día 1 expresada en ºC. En lugar de añadir la
columna, crea un nuevo dataframe sólo con la máxima y la mínima
expresadas en ºC, junto con el indicativo de la estación. Coloca la
columna de las mínimas antes que la de las máximas. Agrupa los datos
iniciales por provincias para calcular la temperatura media del día 1 de
cada provincia, y la máxima registrada en el día 1 de cada provincia.
Guardando variables en un fichero RData
Guarda las variables creadas en un fichero RData y en un csv.
En este ejercicio vamos a trabajar con las estructuras de datos ‘list’ y ‘array’ usando los datos del fichero ‘pr_obs_mm.nc’.
Borramos todos los objetos almacenados en nuestro entorno de trabajo
Para ver los objetos que tenemos cargados en memoria usamos
ls().
Vamos a borrar todos los objetos que tengamos creados en nuestro “Global
environment” antes de hacer nuestro ejercicio.
Trabajando con el fichero netdcf con los datos de precipitación
Queremos obtener la precipitación media desde el año 1980 a 2000 en cada punto de rejilla del área comprendida entre 39ºN y 42ºN de latitud, 5ºW y 2ºE de longitud.¿Cuál sería la precipitación acumulada en el año 2000 en todo el area anterior?