Etiquetas de eje incorrectas para la cuadrícula de facetas ggplot

yo erarespondiendo estapregunta que me enfrenté a un extraño problema;

Quiero hacer un diagrama de barras conggplot2 y tener etiquetas de eje x como último carácter deGroup columna. Utilizarsubstring(Group, 3, 3) para este propósito:

substring(df$Group, 3, 3)
# [1] "1" "2" "3" "1" "2" "1" "2" "3" "4"

Pero cuando lo uso enggplot como abajo, imprime1 en lugar de4 en el último tic;

ggplot(data=df, aes(x=Group, y=Value)) +
  geom_bar(stat="identity") + 
  scale_x_discrete(labels = substring(Group, 3, 3), expand=c(0.1,0.1)) +
  facet_grid(~ substring(Group, 1, 1), space="free_x", scales="free_x", switch="x") + 
  theme_bw() +
  theme(strip.placement = "outside",
        strip.background = element_rect(fill=NA,colour="grey50"),
        panel.spacing=unit(0,"cm"))

Puedo hacer que funcione usandolabels =unique(substring(Group, 3, 3) pero alguien explicaría lo que está pasando?

Datos:

  df <- structure(list(Group = structure(1:9, .Label = c("1_1", "1_2",  
  "1_3", "2_1", "2_2", "3_1", "3_2", "3_3", "3_4"), class = "factor"),  
      Value = c(-1.23, 2.34, 0.56, 1.87, -2.4, 5.54, -0.98, -2.31,  
      6)), .Names = c("Group", "Value"), row.names = c(NA, -9L), class = "data.frame")

# > df

#   Group Value 
# 1   1_1 -1.23 
# 2   1_2  2.34 
# 3   1_3  0.56 
# 4   2_1  1.87 
# 5   2_2 -2.40 
# 6   3_1  5.54 
# 7   3_2 -0.98 
# 8   3_3 -2.31 
# 9   3_4  6.00

Respuestas a la pregunta(2)

Su respuesta a la pregunta