чтобы появиться

Я не могу найти способ попросить ggplot2 показать пустой уровень в блочной диаграмме, не заменяя мой фрейм данных фактическими отсутствующими значениями. Вот воспроизводимый код:

# 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()

Думаю, я что-то упускаю. Это не проблема при работе со сбалансированным экспериментом, когда эти отсутствующие данные могут быть явными во фрейме данных. Но, например, для наблюдаемых данных в когорте это означает вменение данных с отсутствующими значениями для ненаблюдаемых комбинаций... Спасибо за вашу помощь.

10
задан isomorphismes 15 October 2014 в 00:59
поделиться