Otras tablas estadísticas

Conocemos ya la función summary() y la manera de obtener otras medidas estadísticas de las variables incluidas en un data.frame. Por otro lado, en el apartado anterior hemos visto cómo utilizar la función apply() para calcular totales por filas y columnas. En este apartado vamos a profundizar un poco más en las posibilidades de extracción de información en forma de tablas.

Cuando nos interese obtener determinado estadístico de una serie de variables de un data.frame o una tabla bidimensional, podemos aplicar la función apply(). Por ejemplo, para conocer el rango de las variables IN,SF,B,NT y SB, podemos teclear
apply(resultados[3:7],2,range,na.rm=T)
la orden es ya familiar. Los corchetes seleccionan las variables que queremos analizar, el 2 ordena a la función que ``trabaje'' por columnas, range es la función que deseamos aplicar a las variables, y na.rm=T indica que se omitan los valores perdidos. El resultado es


 		  B 		IN 		NT		 SB 		SF    

[1,] 0 0 0 0 0
[2,] 9 10 9 10 10
La función también puede aplicarse a una tabla. Por ejemplo, podemos pedir la desviación estandard para las diferentes modalidades de la variable IN en los diferentes años del data.frame resultados. La tabla que hemos llamado tabla.final en un apartado anterior será ahora el argumento de la función apply(). Este es el resultado:
apply(tabla.final,2,sd,na.rm=T)

  0 		     1 		      2 		       3 		       4 		       5 		     6 		     7 		  8 		       9 		    10 		total.filas               

499.82 213.02 155.81 125.92 101.66 100.49 97.86 69.85 52.80 34.57 28.10 1474.60

Podemos incluso hacer tablas más complejas, en las que se presente el estadístico de una variable en una relación cruzada de dos variables diferentes. Por ejemplo, podemos querer conocer la media de insuficientes en los diferentes cursos a lo largo de los distintos años recogidos en nuestro data.frame. Como se ve, en este caso entran en juego tres variables. Dos de ellas, Año y Curso, serán las entradas de la tabla y la tercera, IN, será el valor. Para obtener este tipo de tablas aplicaremos la función tapply() de la siguiente manera
tapply(IN,list(Año,Curso),mean)
el resultado es


 		1 		2 		3 		4                 

1994 NA NA 3.09 NA
1995 NA NA 3.00 1.06
1996 NA 1.15 2.32 1.70
1997 1.89 0.71 3.64 1.89
1998 2.11 2.68 2.90 1.49
1999 2.26 3.02 3.05 1.76
2000 2.26 3.04 3.64 2.51
2001 2.83 2.89 3.99 1.81
Este tipo de tablas va bastante más allá que las simples tablas de frecuencias y proporcionan información solicitada muy habitualmente en los estudios estadísticos. Esta tabla nos dice, por ejemplo, que en 1996, la media de insuficientes en tercero fue de 2.32 y que en 2001 fue de 3.99.
2007-02-12