No encuentro una manera de pedirle a ggplot2 que muestre un nivel vacío en un diagrama de caja sin imputar mi dataframe con los valores perdidos reales. Aquí es reproducible código:geom_boxplot() desde ggplot2: forzando a que aparezca un nivel vacío
# fake data
dftest <- expand.grid(time=1:10,measure=1:50)
dftest$value <- rnorm(dim(dftest)[1],3+0.1*dftest$time,1)
# and let's suppose we didn't observe anything at time 2
# doesn't work even when forcing with factor(..., levels=...)
p <- ggplot(data=dftest[dftest$time!=2,],aes(x=factor(time,levels=1:10),y=value))
p + geom_boxplot()
# only way seems to have at least one actual missing value in the dataframe
dftest2 <- dftest
dftest2[dftest2$time==2,"value"] <- NA
p <- ggplot(data=dftest2,aes(x=factor(time),y=value))
p + geom_boxplot()
así que supongo que me falta algo. Esto no es un problema cuando se trata de un experimento equilibrado donde estos datos faltantes pueden ser explícitos en el marco de datos. Pero con los datos observados en una cohorte, por ejemplo, significa imputar los datos con valores faltantes para combinaciones no observadas ... Gracias por su ayuda.
Muchas gracias. Esto responde perfectamente mi pregunta. Como principiante de ggplot2, me quedé cegado al pensar que el problema provenía de aes de geom_boxplot() y, por lo tanto, no pude encontrar una solución. Obviamente necesito aprender más sobre ggplot. Gracias de nuevo –