2015-05-13 16 views
6

Ich habe eine Database, und möchte eine Figur mit stat_smooth zeigen.R: stat_smooth groups (x-Achse)

kann ich die avg_time vs Scored_Probabilities Figur zeigen, die wie folgt aussieht:

c <- ggplot(dataset1, aes(x=Avg.time, y=Scored.Probabilities)) 
c + stat_smooth() 

enter image description here

Aber wenn Avg.time zu Zeit oder Alter zu ändern, tritt ein Fehler auf:

c <- ggplot(dataset1, aes(x=Age, y=Scored.Probabilities)) 
c + stat_smooth() 
error: geom_smooth: Only one unique x value each group. Maybe you want aes(group = 1)? 

Wie könnte ich es beheben?

+0

'stat_smooth' funktioniert nur mit kontinuierlichen Variablen. Deine 'age'-Variable ist eine Zeichenvariable. Ich kann nur annehmen, dass die Variable 'time' nicht als Zeit, sondern als Zeichen gespeichert wird. Zuerst müssen Sie Ihre Variablen sinnvoll in Zahlen konvertieren. – shadow

Antwort

6

die Fehlermeldung sagt group=1 zu setzen, tun, dass ein anderer Fehler

ggplot(dataset1, aes(x=Age, y=Scored.Probabilities, group=1))+stat_smooth() 
geom_smooth: method="auto" and size of largest group is >=1000, so using gam with formula: y ~ s(x, bs = "cs"). Use 'method = x' to change the smoothing method. 
Error in smooth.construct.cr.smooth.spec(object, data, knots) : 
    x has insufficient unique values to support 10 knots: reduce k. 

Nun ist die Anzahl der eindeutigen x Werte ist nicht genug gibt.

Also zwei Lösungen: i) mit einer anderen Funktion wie mean, ii) mit Jitter zu bewegen, etwas Alter.

ggplot(dataset1, aes(x=Age, y=Scored.Probabilities, group=1))+ 
geom_point()+ 
stat_summary(fun.y=mean, colour="red", geom="line", size = 3) # draw a mean line in the data 

enter image description here

Oder

ggplot(dataset1, aes(x=jitter(as.numeric(Age)), y=Scored.Probabilities, group=1))+ 
geom_point()+stat_smooth() 

Beachten Sie die Verwendung von as.numeric weil Age ist ein Faktor.

enter image description here

+0

auf einem Faktor verwenden 'as.numeric (as.character (variable))', 'as.numeric (variable)' möglicherweise nicht den erwarteten Wert –

+0

Sie haben wahrscheinlich Recht, fühlen sich frei, die Antwort zu bearbeiten –