Fehler mit pred $ fit unter Verwendung von nls in ggplot2

Also benutze ich nls in ggplot2, um einen Leistungskurvencode zu zeichnen, siehe unten:

mass <- c(4120,4740,5550,5610,6520,6870,7080,8500,8960,10350,10480,10550,11450,11930,12180,13690,13760,13800,14050,14700,15340,15790,15990,17300,18460,18630,18650,20050,23270,24530,25030,27540,28370,33460,33930,34450,34500)

solv_acc <- c(2760,2990,2990,3180,3900,4010,4140,4680,4750,5330,4980,5860,5930,5570,5910,6790,6690,7020,6240,6620,6600,6860,7940,7600,8250,8530,7410,9160,9140,10300,10440,10390,11020,12640,11920,12110,12650)

df <- data.frame(Mass=log(mass),Solv=log(solv_acc))

plotter <- (ggplot(df, aes(x=Mass, y=Solv)) + geom_point(shape=1) + stat_smooth(method = "nls", formula = y~i*x^z, start=list(i=1,z=0.2)))
plotter <-  plotter + labs(x = "Mass kDa" ,y = "Solvent Accessibility")
print(plotter)

Beim Ausführen des obigen Codes wird der folgende Fehler angezeigt:

Error in pred$fit : $ operator is invalid for atomic vectors

Ich gehe davon aus, dass der Fehler auftritt, wenn es versucht, zu verwendenpredict()?

Wenn ich aufführenls ohne die verwendung von ggplot2 auf dem gleichen datenrahmen bekomme ich keinen fehler

> nls1=nls(Solv~i*Mass^z,start=list(i=1,z=0.2),data=df)
> predict(nls1)
 [1] 7.893393 7.997985 8.115253 8.123230 8.234519 8.273135 8.295350 8.429871 8.468550 8.574147 8.583270 8.588134 8.647895 8.677831 8.692939 8.777944 8.781648 8.783757 8.796793 8.829609
[21] 8.860502 8.881445 8.890558 8.947512 8.994380 9.000995 9.001769 9.053953 9.161073 9.198919 9.213390 9.281841 9.303083 9.420894 9.430834 9.441670 9.442703

Kann jemand darauf hinweisen, warum ich den Fehler erhalte?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage