Ich habe eine Sammlung von Daten über mehrere Studien. Für jede Studie interessiere ich mich für den Mittelwert einer Variablen nach Geschlecht und wenn diese sich signifikant unterscheidet. Für jede Studie habe ich die mittleren und 95% Konfidenzintervalle für Männer und Frauen.Dotplot mit Fehlerbalken, zwei Serien, Licht Jitter
Was Ich mag würde, ist etwas zu tun, ähnlich wie diese:
ich mehrere Aromen von Dotplots verwendet haben (Dotplot, dotplot2, Dotplot), aber nicht ganz dorthin gelangen.
Mit Dotplot
von Hmisc
habe ich es geschafft, eine Reihe und seine Fehlerbars zu haben, aber ich bin ratlos, wie man die zweite Reihe hinzufügt.
Ich verwendete Dotplot
und bekam die vertikale Endung der Fehlerbalken folgenden Rat gegeben here. Hier
ist ein funktionierendes Beispiel für den Code I
data<-data.frame(ID=c("Study1","Study2","Study3"),avgm=c(2,3,3.5),avgf=c(2.5,3.3,4))
data$lowerm <- data$avgm*0.9
data$upperm <- data$avgm*1.1
data$lowerf <- data$avgf*0.9
data$upperf <- data$avgf*1.1
# Create the customized panel function
mypanel.Dotplot <- function(x, y, ...) {
panel.Dotplot(x,y,...)
tips <- attr(x, "other")
panel.arrows(x0 = tips[,1], y0 = y,
x1 = tips[,2], y1 = y,
length = 0.05, unit = "native",
angle = 90, code = 3)
}
library(Hmisc)
Dotplot(data$ID ~ Cbind(data$avgm,data$lowerm,data$upperm), col="blue", pch=20, panel = mypanel.Dotplot,
xlab="measure",ylab="study")
Dies zeichnet drei Spalten von Daten verwenden, den Durchschnitt für Männer (avgm) und die unteren und obere Grenze des 95% Konfidenzintervall (Unter und Oberm). Ich habe andere drei Serien für die gleichen Studien, die die gleichen Aufgaben für die weiblichen Probanden (avgf, lowf, upperf) tun.
Die Ergebnisse, die ich wie folgt aussehen haben:
Was fehlt, auf den Punkt:
eine zweite Reihe hinzugefügt (avgf) mit Mitteln und Konfidenzintervall auf definierte drei andere Variablen für die gleichen Studien
Hinzufügen einige vertikale Jitter, so dass sie nicht eins sind der andere aber der Leser kann beides sehen, auch wenn sie sich überschneiden.
Bitte zeigen Sie Ihren Code ... – Thomas
Danke, Code hinzugefügt. Es läuft nicht, da ich die Originaldaten aufgrund von Vereinbarungen mit den ursprünglichen Autoren leider nicht teilen kann. – PaoloCrosetto
Danke, dass du diesen Code hinzugefügt hast. Sie sollten jedoch auch in der Lage sein, einen kleinen Beispieldatensatz zu erstellen, der funktioniert, ohne vertrauliche Informationen preiszugeben. Vielleicht unterteilen Sie Daten von zwei Autoren, ändern Sie die Zahlen ein wenig und anonnymize, und post * das *. (Die Idee ist, potenzielle Beantworter nicht zu raten und auf ihrem eigenen Format das Format der Daten zu rekonstruieren, das Sie in der Hand haben.) –