Ich versuche ein Boxplot zu erstellen, in dem die Ausreißer nach einer dritten Variablen und nicht nach Zeilennamen benannt werden.Boxplot-Label-Ausreißer nach der dritten Variablen
Meine Daten sieht wie folgt aus: (jetzt bearbeitet, um mehrere Länder und Sektoren als Faktor Variable enthalten)
country <- c(rep(LETTERS[1:5],2))
sector <- rep(c("one", "two"),5)
set.seed(200)
value <- round(rnorm(10),2)
dat <- data.frame(country,sector,value)
dat
country sector value
1 A one 0.08
2 B two 0.23
3 C one 0.43
4 D two 0.56
5 E one 0.06
6 A two -0.11
7 B one -1.02
8 C two -0.30
9 D one 0.17
10 E zwei 1,42
Ohne die Etiketten der boxplot ist wie folgt:
Ich möchte, dass die Beschriftungen der Ausreißerpunkte die Werte für das variable Land widerspiegeln.
fand ich eine ähnliche Frage hier: Labeling outliers on boxplot in R und ich versuche, den Code anzupassen, wie folgt:
bxpdat <- boxplot(value ~ sector, data=dat)
text(bxpdat$group+0.2,
bxpdat$out,
dat$country[which(dat$value == bxpdat$out, arr.ind=TRUE)[, 1]])
Allerdings scheine ich etwas falsch machen, weil dies nicht funktioniert. Ich würde einen Vorschlag sehr schätzen, wie man diesen Code repariert,
danke im Voraus!
Hallo, vielen Dank für Ihre Antwort! Es funktioniert mit den Beispieldaten, die ich hier bereitgestellt habe, aber auf meinen echten Daten hat es nicht funktioniert ... vielleicht liegt das daran, dass die Originaldaten viel mehr Länder haben. Wenn ich beispielsweise versuche, das variable Land als 'country <- c (rep (LETTERS [1: 5], 2))' zu definieren, schreibt es für beide Fälle das gleiche Label ... – ZMacarozzi
hast du ausprobiert @MichaelChirico Lösung? das sollte auch an deinen realen Daten arbeiten – Cath