Entfernen Sie nicht verwendete Faktorwerte aus einem Balkendiagramm von ggplot

Ich möchte das Gegenteil von tundiese Frageund sozusagen das Gegenteil vondiese Frage, obwohl es um Legenden geht, nicht um die Handlung selbst.

Die anderen SO-Fragen scheinen zu fragen, wie es gehtbehalten nicht verwendete Faktorstufen. Ich hätte eigentlich gerne meine entfernt. Ich habe mehrere Namensvariablen und mehrere Spalten (breites Format) mit Variablenattributen, mit denen ich zahlreiche Balkendiagramme erstelle. Hier ist ein reproduzierbares Beispiel:

library(ggplot2)
df <- data.frame(name=c("A","B","C"), var1=c(1,NA,2),var2=c(3,4,5))
ggplot(df, aes(x=name,y=var1)) + geom_bar()

Ich bekomme das:

Ich möchte nur die Namen, die entsprechende var habenn's tauchen in meinem Barplot auf (wie in, es gäbe keinen leeren Platz für B).

Die Wiederverwendung des Basisplotcodes ist recht einfach, wenn ich einfach den Namen und den Namen meiner Ausgabedatei ändern kanny=var bisschen. Ich möchte meinen Datenrahmen nicht nur unterteilen müssen, um Droplevels für das Ergebnis für jedes Diagramm zu verwenden, wenn möglich!

Update basierend auf demna.omit() Vorschlag

Betrachten Sie einen überarbeiteten Datensatz:

library(ggplot2)
df <- data.frame(name=c("A","B","C"), var1=c(1,NA,2),var2=c(3,4,5), var3=c(NA,6,7))
ggplot(df, aes(x=name,y=var1)) + geom_bar()

Ich muss verwendenna.omit() zum Plottenvar1 weil es ein NA-Geschenk gibt. Aber da na.omit sicherstellt, dass Werte für vorhanden sindalle Spaltenentfernt sich die HandlungA als auch, da es eine NA in hatvar3. Dies ist analog zu meinen Daten. Ich habe insgesamt 15 Antworten mit NAs über gespickt. Ich möchte nur Faktorstufen entfernen, die keine Werte für die habenaktuell geplotteter y-Vektor, der keine NAs enthältirgendein Vektor im gesamten Datenrahmen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage