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 SFLa 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:[1,]
0 0 0 0 0[2,]
9 10 9 10 10
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 4Este 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.
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