Calcular proporções dentro de subconjuntos de um quadro de dados
Eu estou tentando obter proporções dentro de subconjuntos de um quadro de dados. Por exemplo, neste quadro de dados confeccionado:
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))
Eu gostaria de calcular a proporção de cada um dos três animais para cadacategory1
porcategory2
combinação (por exemplo, de todos os animais que são "A" e "X", que proporção são os cães?). Comprop.table
na coluna 4 do quadro de dados eu posso obter a proporção que cada linha faz da coluna "número" total, mas eu não encontrei uma maneira de fazer isso para subconjuntos com base na categoria 1 e 2. Eu também tentei dividir os dados porcategory1
ecategory2
usando isso:
splitDF<-split(DF,list(DF$category1,DF$category2))
E eu estava esperando poder então aplicar uma função comprop.table
para obter as proporções de cada animal dentro de cada grupo de divisão, mas não consigoprop.table
trabalhando porque não consigo especificar em qual coluna de dados aplicar a função dentro dos grupos de divisão. Alguém tem alguma dica? Talvez isso seja possível complyr
ou algo similar? Não consigo encontrar nada nos fóruns de ajuda sobre maneiras de obter proporçõesdentro subconjuntos de dados.