Как применить ggplot position_dodge к категориям без данных?

Я пытаюсь использовать position_dodge на ggplot для получения коробочных диаграмм двух разных сигналов (ind), разделяющих одни и те же категории (cat). Когда есть категория с данными для одного сигнала, но не для другого, блокпост для сигнала с данными охватывает весь горизонтальный интервал и не учитывает инструкцию position_dodge для этой конкретной категории. Есть ли способ заставить ggplot применять правило уклонения? Как видно из приведенного ниже примера, сигнал x не имеет данных для категории B, поэтому он теряет место, зарезервированное для position_dodge. Я хотел бы избежать этого.

Заранее спасибо.

data<-data.frame(cat=c('A','A','A','A','B','B','A','A','A','A','B','B'), 
                 values=c(3,2,1,4,NA,NA,4,5,6,7,8,9), 
                 ind=c('x','x','x','x','x','x','y','y','y','y','y','y'))

print(ggplot() +
        scale_colour_hue(guide='none') +
      geom_boxplot(
           aes(x=as.factor(cat), y=values, 
               fill=ind), 
           position=position_dodge(width=.60), 
           data=data,
           outlier.size = 1.2,
           na.rm=T))

PROGRESS UPDATE

После некоторых обходных путей я нашел результат, который искал ... (вроде)

data            <- data.frame(
cat=c('A','A','A','A','B','B','A','A','A','A','B','B','B'), 
values=c(3,2,1,4,NA,NA,4,5,6,7,8,9, 0), 
ind=c('x','x','x','x','x','x','y','y','y','y','y','y','x'))

p  <- ggplot() +
      scale_colour_hue(guide='none') +
      geom_boxplot(aes(x=as.factor(cat), y=values, fill=ind),
      position=position_dodge(width=.60), 
      data=data,
      outlier.size = 1.2,
      na.rm=T) +
      geom_line(aes(x=x, y=y), 
                data=data.frame(x=c(0,3),y=rep(0,2)), 
                size = 1, 
                col='white')
print(p)

Некоторые люди рекомендуют использовать огранку для желаемого эффекта. Faceting не дает мне эффекта, который я ищу. Окончательный график, который я искал, показан ниже:

Если вы заметили, белая большая отметка у = 10 толще других отметок. Эта более толстая линия - geom_line с размером = 1, которая скрывает нежелательные поля.

Я хотел бы, чтобы мы могли объединять различные объекты geom более плавно. Я сообщил об этом как об ошибке на github Хэдли, но Хэдли сказал, что именно так position_dodge ведет себя конструктивно. Я предполагаю, что я использую ggplot2 нестандартным способом, и обходные пути - способ решить эти проблемы. В любом случае, я надеюсь, что это поможет некоторым из R продвинуть отличную функциональность ggplot немного дальше.