Ich habe seit ein paar Tagen nach einer Antwort auf diese Frage gesucht, habe die Antwort nicht gefunden, und dachte, dass es Zeit war, hierher zu kommen und selbst eine Frage zu stellen. Ich habe einen Datenrahmen, den ich einloggte, read.csv()
mit dem as.is=TRUE
Flag verwendend.Warum scheitert die Farbgebung bei Verwendung einer Teilmenge eines Datenrahmens?
x$night <- as.Date(x$night)
x$gsub_version <- as.numeric(x$gsub_version)
x$gsub_version <- x$gsub_version + 1
head(x)
night filter mag mag_err gsub_version
2013-10-08 B 17.67273 0.003226886 1
2013-10-08 B 17.80228 0.003165991 2
Um Platz zu sparen, habe ich abgeschnitten die Ergebnisse. Ich möchte die Daten mit filter=='V'
und col=factor(x$gsub_version)
plotten.
plot(mag ~ night, data=x[x$filter=="V",], ylim=c(21,17), col=factor(x$gsub_version))
Leider erzeugt diese diese plot mit falschen Farben nach einem bestimmten Punkt. Wenn ich den zusätzlichen Schritt einschließe, um einen dedizierten Datenrahmen für die Variable filter
zu erstellen, sieht die Darstellung korrekt aus.
y <- x[x$filter=="V",]
plot(mag ~ night, data=y, ylim=c(21,17), col=factor(y$gsub_version))
Und hier ist die new plot, die produziert wird. Das neue Diagramm verwendet korrekt die Werte gsub_version
. Meine Frage ist zweifach: Was macht diese beiden Methoden anders, wenn man bedenkt, dass y aus der gleichen Teilmenge besteht, die für die erste Handlung verwendet wurde, und warum scheitert die erste Methode?
Vielen Dank, dass Sie sich die Zeit genommen haben, dies zu lesen.
Scheint, als ob 'Faktor (x $ gsub_version)' nicht Teilmenge ist. Versuchen Sie die erste Zeile mit 'mit (x, factor (gsub_version [filter ==" V "]))' – MichaelChirico
Es funktioniert nicht, weil Sie falsch sind, dass 'x $ gsub_version' ist das gleiche wie' y $ gsub_version'. Wenn Sie den Datenrahmen mit 'data = x [x $ filter ==" V "]] unterteilen, gilt diese Untermenge nur für die Formel. Sie haben einen _unfiltered_ Vektor von Farben mit 'x $ gsub_version' getrennt übergeben. – joran
Vielen Dank! – luminessence