geom_boxplot () de ggplot2: forçando a exibição de um nível vazio
Não consigo encontrar uma maneira de solicitar ao ggplot2 que mostre um nível vazio em um boxplot sem imputar ao meu quadro de dados valores reais ausentes. Aqui está o código reproduzível:
# 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()
Então eu acho que estou faltando alguma coisa. Isso não é um problema ao lidar com uma experiência equilibrada em que esses dados ausentes possam ser explícitos no quadro de dados. Mas, com dados observados em uma coorte, por exemplo, isso significa imputar os dados com valores ausentes para combinações não observadas ... Obrigado pela ajuda.