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