2017-12-17 5 views
0

Ich habe ein Problem gefunden, das ich nicht verstehen konnte. Kann jemand bitte auf eine Erklärung hinweisen?Wie wird die Variable in ggplot richtig verwendet?

In ggplot, wenn ich/$ nicht mit Variablennamen verwenden, gibt es andere Ergebnisse. Bitte beachten Sie das Beispiel unten

library(ggplot2) 
df <- read.csv("pseudo_facebook.tsv", sep = '\t') 

# Without $ sign 
ggplot(data = df, aes(x = friend_count)) + geom_histogram(binwidth = 25) + 
    scale_x_continuous(limits = c(1, 1000), breaks = seq(0, 1000, 25)) + 
    facet_grid(~df$gender) 

Without $ in the variable name

# With $ sign 
ggplot(data = df, aes(x = df$friend_count)) + geom_histogram(binwidth = 25) + 
    scale_x_continuous(limits = c(1, 1000), breaks = seq(0, 1000, 25)) + 
    facet_grid(~df$gender) 

enter image description here

+0

Sie benötigen wie dies ein reproduzierbares Beispiel für eine Frage zur Verfügung zu stellen. Führen Sie 'dput (df)' aus und kopieren Sie die Ausgabe in die Frage (sofern das Dataset nicht zu groß ist). –

+2

Die kurze Erklärung ist: niemals '$' in AES() oder Facettieren! Tu es einfach nicht! Es ist falsch! ;) – joran

+0

Hallo, Dies ist die Datei für die Daten verwendet, https://github.com/staceynlee/Pseudo-Facebook-Data-Udacity/blob/master/pseudo_facebook%20(1).tsv –

Antwort

0

Ich bin nicht sicher, ob dies ist, was Ihr Verhalten verursacht, aber im ersten Beispiel, haben Sie immer noch df$ in die facet_grid Formel. Es ist möglich, dass es zu einem schleichenden Evaluierungsproblem kommt, wenn Sie bloße Spaltennamen mit Spaltennamen mischen, die mit dem Datenrahmen angegeben sind.

Wenn Sie darauf hin, dass Dateinamen wechseln in read.csv mit einer URL, erhalten Sie eine reprex, die ich testen kann

+0

Hier ist die Datenquellenverbindung, wenn Sie das meinen? https://github.com/staceynlee/Pseudo-Facebook-Data-Udacity/blob/master/pseudo_facebook%20(1).tsv –

Verwandte Themen