Вот простой пример, который вы можете изменить в соответствии с вашими целями ...
df <- data.frame(ID=c("A","A","B","B","C","C"),
age=c(20,25,22,27,21,28))
library(dplyr)
library(ggplot2)
#sort by first age for each ID
df <- df %>% group_by(ID) %>%
mutate(index=min(age)) %>%
ungroup() %>%
mutate(index=rank(index))
ggplot(df,aes(x=age,y=index,colour=ID,group=ID))+
geom_point(size=4)+
geom_line(size=1)
