geom_boxplot () de ggplot2: obligando a que aparezca un nivel vacío

No puedo encontrar una manera de pedirle a ggplot2 que muestre un nivel vacío en un diagrama de caja sin imputar mi marco de datos con valores faltantes reales. Aquí hay un código reproducible:

# 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.