Non riesco a trovare un modo per chiedere a ggplot2 di mostrare un livello vuoto in un boxplot senza imputare il mio dataframe con valori mancanti reali. Ecco il codice riproducibili:geom_boxplot() da ggplot2: forzatura di un livello vuoto per apparire
# 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()
quindi credo che mi manca qualcosa. Questo non è un problema quando si tratta di un esperimento equilibrato in cui questi dati mancanti potrebbero essere espliciti nel dataframe. Ma con i dati osservati in una coorte, ad esempio, significa imputare i dati con valori mancanti per le combinazioni inosservate ... Grazie per il vostro aiuto.
Grazie mille. Questo risponde perfettamente alla mia domanda. Come principiante di ggplot2, mi sono reso cieco pensando che il problema provenisse da aes di geom_boxplot() e quindi non sono riuscito a trovare una soluzione. Ovviamente ho bisogno di saperne di più su ggplot. Grazie ancora –