Вы можете масштабировать каждую строку на отношение в точке таких линий:
peak_a<-c(0.1,0.4,0.6,0.8,0.9,1,0.9,0.8,0.6,0.4,0.1,0.05,0.04)
peak_b<-c(0.04,0.06,0.1,0.2,0.3,0.45,0.7,0.9,1.1,1.3,1.35,1.3,1.15,1,0.85,0.65,0.5)
abs<-c(peak_a,1.5*peak_b)
abs2<-c(1.5*peak_a,0.5*0.9*peak_b)
abs3<-c(0.9*peak_a,peak_b)
plot(abs, type="l")
lines(abs2*abs[6]/abs2[6],col="red")
lines(abs3*abs[6]/abs3[6],col="blue")
![enter image description here](https://i.stack.imgur.com/c5E7V.png)
некоторые фактические данные из пара ваших кривых может помочь сделать более надежное решение, более соответствующее вашим потребностям.
Вот способ «автоматизации» процедуры, поскольку вы сказали, что у вас много кривых:
peak_a<-c(0.1,0.4,0.6,0.8,0.9,1,0.9,0.8,0.6,0.4,0.1,0.05,0.04)
peak_b<-c(0.04,0.06,0.1,0.2,0.3,0.45,0.7,0.9,1.1,1.3,1.35,1.3,1.15,1,0.85,0.65,0.5)
abs<-c(peak_a,1.5*peak_b)
abs2<-c(1.5*peak_a,0.5*0.9*peak_b)
abs3<-c(0.9*peak_a,peak_b)
abs4<-c(0.75*peak_a,peak_b)
abs5<-c(0.88*peak_a,peak_b)
plot(abs, type="l")
ListOfCurves <- sapply(2:5, function(x) paste0("abs",x))
AllCurves <- lapply(ListOfCurves, function(x) eval(parse(text=x)))
NormalizedCurves <- lapply(AllCurves, function (x) x*abs[6]/x[6])
lapply(1:4, function(x) lines(NormalizedCurves[[x]],col=x))
![enter image description here](https://i.stack.imgur.com/XVwZn.png)