Agregar por múltiples columnas y remodelar de largo a ancho
Hay algunas preguntas similares a este tema en SO pero no exactamente como mi caso de uso. Tengo un conjunto de datos donde las columnas se presentan como se muestra a continuación
Id Description Value
10 Cat 19
10 Cat 20
10 Cat 5
10 Cat 13
11 Cat 17
11 Cat 23
11 Cat 7
11 Cat 14
10 Dog 19
10 Dog 20
10 Dog 5
10 Dog 13
11 Dog 17
11 Dog 23
11 Dog 7
11 Dog 14
Lo que estoy tratando de hacer es capturar la media de la columna Valor por Id, Descripción. El conjunto de datos final se vería así.
Id Cat Dog
10 14.25 28.5
11 15.25 15.25
Puedo hacer esto de una manera muy tosca, no muy eficiente como esta
tempdf1 <- df %>%
filter(str_detect(Description, "Cat")) %>%
group_by(Id, Description) %>%
summarize(Mean_Value = mean(Value) , na.rm = TRUE))
Esto no es muy conveniente. Cualquier consejo sobre cómo lograr los resultados esperados de manera más eficiente es muy apreciado.