Calcular proporciones dentro de subconjuntos de un marco de datos
Estoy tratando de obtener proporciones dentro de los subconjuntos de un marco de datos. Por ejemplo, en este marco de datos inventados:
DF<-data.frame(category1=rep(c("A","B"),each=9),
category2=rep(rep(LETTERS[24:26],each=3),2),
animal=rep(c("dog","cat","mouse"),6),number=sample(18))
Me gustaría calcular la proporción de cada uno de los tres animales para cada unocategory1
porcategory2
combinación (por ejemplo, de todos los animales que son "A" y "X", ¿qué proporción son perros?). Conprop.table
En la columna 4 del marco de datos puedo obtener la proporción que cada fila compone de la columna "número" total, pero no he encontrado una forma de hacer esto para los subconjuntos basados en la categoría 1 y 2. También intenté dividir los datos porcategory1
ycategory2
usando esto:
splitDF<-split(DF,list(DF$category1,DF$category2))
Y esperaba poder entonces aplicar una función conprop.table
para obtener las proporciones de cada animal dentro de cada grupo dividido, pero no puedo obtenerprop.table
trabajando porque parece que no puedo especificar a qué columna de datos aplicar la función dentro de los grupos divididos. ¿Alguien tiene algún consejo? Tal vez esto sea posible conplyr
¿o algo similar? No puedo encontrar nada en los foros de ayuda sobre formas de obtener proporciones.dentro subconjuntos de datos.