0 1 2 3 4 5 6 7 8 9 10
1644 703 510 410 329 321 317 225 172 113 93
En muchos casos nos interesa agrupar los casos en intervalos. Para ello, podemos utilizar la función cut(). Por ejemplo, cut(IN,c(-0.01,2,5,8,10))
agrupará los registros de resultados en los intervalos definidos por los límites de clase
. Hay que hacer notar que
cut(), por defecto, genera intervalos semiabiertos por abajo, de modo que para incluir en la primera clase los casos con
insuficientes, hay que definir un límite de clase ligeramente inferior (en este caso,
).
Ahora, para tabular el número de casos que contiene cada clase podríamos utilizar la función tapply() de la siguiente manera:
tapply(Alumno,cut(IN,c(-0.01,2,5,8,10)),length)
cuyo resultado es
(-0.01,2] (2,5] (5,8] (8,10]Veamos con más detalle cuál es la sintaxis de la función aplicada: se le dice a R que coja la variable Alumno y reparta los casos en los intervalos definidos por la función cut() según el número de IN que tenga cada uno. Una vez hecho este reparto, se aplica la función length() para ver cuál es la longitud del vector resultante, es decir, el número de casos. En este ejemplo no podemos utilizar la función sum() para obtener este último valor, como parecería más normal, porque la variable Alumno no es de tipo numérico sino que es un factor, de modo que no se le pueden aplicar operaciones de tipo algebráico.
2858 1061 715 207