Usar merge() y representar en el tiempo
Ahora que tienes datos de temperatura que cubren el mismo periodo (2010-2015) y con la misma frecuencia (mensual) que tus datos de vuelos, ya puedes combinar.
Para unir objetos xts por columna, puedes usar merge(). Cuando dos objetos xts comparten la misma periodicidad, merge() suele poder combinar la información en las filas adecuadas. Incluso cuando los objetos xts no comparten periodicidad, merge() conserva el orden temporal correcto de esos objetos a lo largo de periodos distintos.
En este ejercicio, unirás tus dos objetos xts por columna y generarás nuevos gráficos para explorar cómo se relacionan los retrasos de vuelos con la temperatura. temps_monthly y flights_xts están disponibles en tu espacio de trabajo.
Este ejercicio forma parte del curso
Estudio de caso: Análisis de series temporales de una ciudad en R
Instrucciones del ejercicio
- Usa
merge()para combinarflights_xtsytemps_monthly. Como estos objetos xts comparten periodicidad, tu comando de combinación debería colocar los datos de temperatura en la fila correspondiente dentro de tu objetoflights_xts. Ten en cuenta que el orden en el que indiques los objetos a unir determina dónde aparecerán las columnas en el objeto resultante. Para mantener la coherencia, coloca primeroflights_xtsy despuéstemps_monthly. - Examina las primeras filas de tu objeto xts combinado (
flights_temps) para confirmar que la unión se realizó correctamente. Deberías ver los datos de temperatura alineados con los datos de vuelos. - Usa
plot.zoo()para generar un único gráfico que contenga ambas columnas,pct_delayytemps_monthly, deflights_temps. Asegúrate de seleccionar solo las columnas relevantes y de especificarplot.typecomo"single". Deja el argumentoltytal como está.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Use merge to combine your flights and temperature objects
flights_temps <- merge(___, ___)
# Examine the first few rows of your combined xts object
# Use plot.zoo to plot these two columns in a single panel
plot.zoo(___[,c("___", "___")], plot.type = "___", lty = lty)
legend("topright", lty = lty, legend = labels, bg = "white")