No ggplot2, coord_flip e escalas livres não funcionam juntas

Aqui estão alguns dados de exemplo para uma meta-análise hipotética sobre a eficácia das intervenções de promoção esportiva para as quais eu gostaria de criar um terreno florestal:

example.df = data.frame(Author = c("McAuliffe et al.", "Palen et al.", "Manning et al.", "Richters et al.", "Grello et al.","Mpofu et al.", "Kuo & St Lawrence", "Langstrom & Hanson", "Ompad et al.", "Abdullah et al.","Yan", "Peltzer & Pengpid", "Lo & Wei", "Haggstrom-Nordin et al.", "Mwaba & Naidoo", "Hughes et al.","Lydie et al.", "Zimmer-Gembeck et al.", "Babalola", "Garos et al.", "Pinkerton et al."),
                    Sport = c("Basketball", "Basketball", "Baseball", "Dance", "Baseball", "Dance", "Wrestling","Wrestling", "Dance", "Baseball", "Wrestling", "Dance", "Swimming", "Swimming","Basketball", "Basketball", "Basketball", "Basketball", "Basketball", "Swimming", "Wrestling"),
                    Gender = c("Male", "Female", "Male", "Male", "Female", "Male", "Male", "Male", "Male", "Female","Female", "Male", "Female", "Female", "Female", "Male", "Female", "Female", "Female", "Male", "Female"),
                    d = c(-0.12, 0.53, 0.11, 0.02, 0.32, 0.04, 0.03,0.04,0.26, 0.76, 1.11, 0.34, 0.77, 1.19, 0.59, 0.15, 0.30, 0.81, 0.12, 0.11, 1.01),
                    d_SE = c(.10, .04, .06, .01, .11, .08, .08, .04, .05, .05, .14, .07, .05, .08, .19, .16, .07, .16, .06, .18, .15))

O quadro de dados contém nomes de autores, o esporte, se a amostra era masculina ou feminina, o tamanho do efeito para a intervenção e o erro padrão do tamanho do efeito. Espero criar uma forma de mapeamento de plotagem de pontos para o gênero e faceta pelo esporte em particular. Depois de seguir exemplos no "livro de receitas" de Chang eesta consulta relacionada, Criei o seguinte código que atende à maioria das minhas necessidades de formatação:

p<-ggplot(example.df, aes(x=Author, y=d, ymin=d-1.96*d_SE, ymax=d+1.96*d_SE,shape=Gender))+ 
geom_pointrange() + 
coord_flip()+
scale_y_continuous(limits=c(-2,2),breaks=c(-2,-1.5,-1,-0.5,0,.5,1,1.5,2))+
geom_hline(yintercept=0, color="grey60",linetype="dashed")+
theme_bw()+
theme(panel.grid.major.x=element_blank(),panel.grid.minor.x=element_blank(),panel.grid.major.y=element_line(color="grey60",linetype="dashed"))+
facet_grid(Sport ~ ., scales="free_y")
p

Meu problema, no entanto, é que os gráficos resultantes para cada faceta (abaixo) têm todos os autores em todo o quadro de dados plotados no eixo y (tecnicamente eixo x, mas os eixos são invertidos). Em vez disso, quero apenas que os autores com dados relevantes para uma determinada faceta sejam plotados no eixo associado a autores dessa faceta, para que cada faceta tenha uma lista diferente de autores no eixo.

Eu pensei que oscales="free_y"componente dofacet_grid&nbsp;camada garantiria um eixo de autor exclusivo para cada faceta (eu também tenteiscales="free_x", dados os eixos invertidos), mas isso não está tendo o efeito pretendido.

Alguém sabe de uma maneira que eu possa garantir que os únicos nomes de autores que apareçam no eixo de cada faceta sejam os que têm dados associados a essa faceta?