Tablas de frecuencias relativas

Para crear este tipo de tablas podemos utilizar, de nuevo, las posibilidades que ofrece R (y que son típicas de los sistemas UNIX) para llegar a un objetivo final mediante pasos intermedios. Veamos el procedimiento con un ejemplo.
(1)tabla.inicial<-table(Año,Curso)
(2)total.filas<-apply(tabla.inicial,1,sum)
(3)str(tabla.inicial)
(4)tabla.frecuencias.rel<-tabla.inicial[1:8,1:4]/total.filas*100
(5)options(digits=4)
(6)tabla.frecuencias.rel
Con la primera instrucción creamos una tabla bidimensional.
Con la segunda, creamos el total por filas, tal y como se hizo en un apartado anterior, con la función apply()
Con la tercera instrucción analizamos la estructura de la tabla inicial. En este caso nos informa que tabla.inicial es el resultado de tabular la variable Año (que presenta 8 elementos [1:8]) y la variable Curso (que presenta 4 elementos [1:4]). Estos datos son utilizados en la siguiente orden, que hace dividir de manera adecuada los elementos de tabla.inicial entre los elementos de total.filas para generar la nueva tabla tabla.frecuencias.rel. El resultado se multiplica por 100 para obtener porcentajes. Como se puede apreciar, la estructura de la tabla inicial se incorpora a la operación algebráica entre corchetes para efectuar la selección de los elementos de la tabla.
La quinta es una instrucción símplemente para reducir el número de decimales de la salida (por defecto, digits=7).
La última orden imprime por pantalla la tabla de frecuencias relativas calculadas en base al total por filas. La tabla es la siguiente

 		 		 Curso 

Año 1 2 3 4
1994 0.000 0.00 100.00 0.00
1995 0.000 0.00 68.10 31.90
1996 0.000 11.44 50.42 38.14
1997 3.158 23.16 37.54 36.14
1998 27.314 27.59 25.05 20.05
1999 28.004 36.40 17.89 17.71
2000 26.923 32.93 25.33 14.82
2001 23.762 36.39 25.25 14.60

Afortunadamente, R nos proporciona la función prop.table() que nos genera directamente tablas de frecuencias relativas por filas o columnas. En el caso anterior, sólo deberíamos teclear
prop.table(tabla.inicial,1)*100
para obtener el mismo resultado. Obsérvese que hay que multiplicar por 100 si deseamos que la tabla muestre porcentajes ya que por defecto el resultado aparece en tantos por uno.
Si hubiéramos introducido la siguiente orden
prop.table(tabla.inicial,2)*100
el resultado hubiera sido una tabla de frecuencias relativas por columnas (como manda el 2 introducido como argumento de la función).

2007-02-12