Ich habe ein einfachen Daten-Set mit zwei kontinuierlichen Variablen (Vesicle und Zellen) und einer einzigen Gruppierung Variable mit zwei Ebenen (HC und RA), hier simuliert:Wie zeichnen Sie nichtlineare Regressionslinien innerhalb von Gruppen und Gesamtdaten in ggplot2?
###Simulate Vesicle variable###
Vesicle.hc <- sort(runif(23, 0.98, 5)) #HC group
Vesicle1.ra <- sort(runif(5, 0.98, 3)) #RA group
Vesicle <- c(Vesicle.hc, Vesicle1.ra) #Combined
###Simulate Cells variable###
z <- seq(23)
Cells.hc <- (rnorm(23, 50 + 30 * z^(0.2), 8))*runif(1, 50000, 400000) #HC group
Cells.ra <- c(8.36e6, 6.35e6, 1.287e7, 1.896e7, 1.976e7) #RA group
Cells <- c(Cells.hc, Cells.ra) #Combined
###Define groups and create dataframe###
Group <- rep("HC",23) #HC group
Group1 <- rep("RA",5) #RA Group
Group <- c(Group, Group1) #Combined
df <- data.frame(Cells, Vesicle, Group) #Data frame
Ich habe ein Streudiagramm der Daten aufgetragen mit ggplot2 mit nicht-linearen Regressionsgeraden (gezeigt here), die zu jeder Gruppe ausgestattet einzeln mit:
###Plot data###
library(ggplot2)
ggplot(df, aes(x = Cells, y = Vesicle, colour=Group)) +
xlab("Stimulated neutrophils") +
ylab("MV/cell") +
stat_smooth(method = 'nls', formula = 'y~a*exp(b*x)', #Fit nls model
method.args = list(start=c(a=0.1646, b=9.5e-8)), se=FALSE) + #Starting values
geom_point(size=4, pch=21,color = "black", stroke=1.5, aes(fill=Group)) #Change point style
Meine Frage ist, zusätzlich zu den nicht-linearen Regressionsfunktionen jeder Gruppe Plotten, wie kann ich auch Grundstück eine Regressionslinie passt zu alle die Daten, d.h. die Daten modellieren, wobei der Beitrag der Gruppierungsvariablen ignoriert wird?
Sie haben ein unerwartetes Symbol dort bei der Erstellung von 'Cells.hc' bekommen. Außerdem sehe ich nicht, wo 'z' erzeugt wird. –
Fügen Sie ein weiteres 'stat_smooth' mit' aes (group = NULL) 'hinzu, denke ich. – Axeman
Oh meine aufrichtige Entschuldigung, ich hatte diese Variablen in meiner Umgebung schon, als ich das Arbeitsbeispiel machte - wie schlampig von mir. Der bearbeitete Code sollte nun funktionieren. Ich habe Ihren Vorschlag @ Axeman versucht, aber obwohl keine Fehler geworfen werden, gibt es auch keine Änderung an der Handlung. – Hefin