Cómo agregar resultados de tapply a un marco de datos existente [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Cálculo de estadísticas sobre subconjuntos de datos [duplicado] 3 respuestasMe gustaría agregartapply
resultados al marco de datos original como una nueva columna.
Aquí está mi marco de datos:
dat <- read.table(text = " category birds wolfs snakes
yes 3 9 7
no 3 8 4
no 1 2 8
yes 1 2 3
yes 1 8 3
no 6 1 2
yes 6 7 1
no 6 1 5
yes 5 9 7
no 3 8 7
no 4 2 7
notsure 1 2 3
notsure 7 6 3
no 6 1 1
notsure 6 3 9
no 6 1 1 ",header = TRUE)
Me gustaría agregar la media de cada categoría al marco de datos como una columna. Solía:tapply(dat$birds, dat$category, mean)
para obtener la media por categoría, pero no encontré una manera de agregarla al conjunto de datos tan lejos que en una nueva columna tendré la media de la categoría relevante.