You could also do it using geom_segment:
library(ggplot2)
data <- data.frame(
ID=seq(1:10),
Before=sample(80:100,size=10, replace=TRUE),
After=sample(60:100,size=10, replace=TRUE)
)
ggplot(data) +
geom_segment(aes(x = 1, xend = 2, y = Before, yend = After)) +
theme_bw() +
scale_x_discrete(
breaks = c("1", "2"),
labels = c("Before", "After"),
limits = c(1, 2)
) +
labs(y = "")

Created on 2018-08-02 by the reprex package (v0.2.0).
I reduced it to 10 observations because the dataset with 100 observations was pretty much unreadable when trying to use this type of graph, IMO