Última actualización de este sitio: 29 noviembre, 2022


Cargando los datos de ejemplo

Ocuparemos la dataframe orange2 del paquete datana del libro Análisis de datos con el programa estadístico R: una introducción aplicada de Salas-Eljatib (2021).

> library(datana)
> data(orange2)
> df <- orange2

Revisemos los datos

> head(df) #primeras seis filas
  arbol tiempo peri     dap         sitio      especie
1     1    118   30  9.5493 Northern site Radiata pine
2     1    484   58 18.4620 Northern site Radiata pine
3     1    664   87 27.6930 Northern site Radiata pine
4     1   1004  115 36.6056 Northern site Radiata pine
5     1   1231  120 38.1972 Northern site Radiata pine
6     1   1372  142 45.2000 Northern site Radiata pine
> nrow(df) #numero de filas de la dataframe
[1] 35

Esta dataframe contiene mediciones temporales de diámetro del fuste en árboles de Naranjo, esto es un estudio longitudinal, es decir, existen varias mediciones para cada unidad muestral. Ejemplos de este tipo son típicos en estudios de crecimiento, por ejemplo, ver crecimiento de árboles de Nothofagus obliqua en Salas and García (2006).

Es siempre necesario conocer la estructura de los datos y en caso de que existan factores, cuantos niveles hay. Esto se puede realizar mediante

> str(df)
'data.frame':   35 obs. of  6 variables:
 $ arbol  : int  1 1 1 1 1 1 1 2 2 2 ...
 $ tiempo : int  118 484 664 1004 1231 1372 1582 118 484 664 ...
 $ peri   : int  30 58 87 115 120 142 145 33 69 111 ...
 $ dap    : num  9.55 18.46 27.69 36.61 38.2 ...
 $ sitio  : chr  "Northern site" "Northern site" "Northern site" "Northern site" ...
 $ especie: chr  "Radiata pine" "Radiata pine" "Radiata pine" "Radiata pine" ...
> df$sitio<-as.factor(df$sitio)
> df$especie<-as.factor(df$especie)
> unique(df$sitio)
[1] Northern site Southern site
Levels: Northern site Southern site
> unique(df$especie)
[1] Radiata pine Beech        Douglas-fir 
Levels: Beech Douglas-fir Radiata pine

Gráfico simple de serie de tiempo

Para realizar este ejemplo, Ud debe bajar a su computador el siguiente archivo que contiene la función a emplear.

> source("timeSerPlot.R")
> timeSerPlot(df, y="dap", x="tiempo", obs.unit = "arbol")

Gráfico de serie de tiempo segregado por un factor

> timeSerPlot(df, y="dap", x="tiempo", obs.unit = "arbol",
+             factor1="sitio")

Gráfico de serie de tiempo segregado por dos factores

> timeSerPlot(df, y="dap", x="tiempo", obs.unit = "arbol",
+             factor1="sitio", factor2= "especie")

Tambien puede invertir la posición de los factores, es decir, dejar el factor “especie” como panel principal, y al factor “sitio” con una leyenda diferente.

> timeSerPlot(df, y="dap", x="tiempo", obs.unit = "arbol",
+             factor2="sitio", factor1= "especie")

Gráfico de serie de tiempo segregado por dos factores, personalizado

> timeSerPlot(df, y="dap", x="tiempo", obs.unit = "arbol",
+             factor1="sitio", factor2= "especie",
+             factor2.col = T, only.lines = T,
+             xlab = "Tiempo (dias desde germinacion)",
+             ylab = "Diametro del fuste (cm)")

Referencias bibliográficas

Salas, C., and O. García. 2006. Modelling height development of mature Nothofagus obliqua.” Forest Ecology and Management 229 (1-3): 1–6. https://doi.org/10.1016/j.foreco.2006.04.015.
Salas-Eljatib, C. 2021. Análisis de datos con el programa estadístico R: una introducción aplicada. Santiago, Chile: Ediciones Universidad Mayor. https://tienda.zigzag.cl/9789566086109-analisis-de-datos-con-el-programa-estadistico-r.html.