Confirming that the linked answer actually works for this case:
Make up some data:
d <- data.frame(lab=c(paste("very very very very long label ......",1:2),
paste("sL",1:2)),
f=rep(c("A","B"),each=2))
d$z <- 1:4
library("ggplot2"); theme_set(theme_bw())
library("gridExtra")
Generate two plots:
g1 <- lapply(split(d,d$f),
function(dd)
ggplot(dd,aes(x=lab,y=z))+geom_bar(stat="identity")+
coord_flip()+labs(x=""))
Now apply the suggested answer:
gA <- ggplotGrob(g1[[1]])
gB <- ggplotGrob(g1[[2]])
maxWidth <- grid::unit.pmax(gA$widths[2:5], gB$widths[2:5])
gA$widths[2:5] <- as.list(maxWidth)
gB$widths[2:5] <- as.list(maxWidth)
grid.arrange(gA, gB, ncol=1)
