2017-03-15 2 views
0

Ich habe ein Diagramm mit ggplot2 erstellt und ich habe diesen Code, der gut genug funktioniert.R: geom_text Label erkennt kein numerisches Zeichen

ggp <- ggplot(data.frame(diam.split.data$"(0,10]"),aes(x=intcat)) 
ggp + geom_bar() + 
    geom_text(stat='count', aes(label=paste(round(..count../151*100),"%")), vjust=-1) 

enter image description here

Ich brauche aber jedes Mal manuell erstelle ich eine andere Kurve, die die 151 (zu diesem Datensatz der Gesamt Beobachtungen) zu ändern. Also kam ich mit dieser Zeile, die mir die 151 gibt (und die auch mit jedem anderen Datensatz funktioniert):

f1 <- (as.numeric(substr(((unname((summary(diam.split.data$"(0,10]"))))[1,1]), 
    start=9, stop=20))) 

Kein Problem hier. f1 ergibt 151 genauso wie f1 < - 151.

aber wenn ich versuche, die 151 in dem ggplot2 Code zu ersetzen, es scheitert:

Fehler in Paste (Formel = round (Anzahl/f1 * 100), "%"): Objekt 'f1' nicht gefunden

Wie sage ich R, um f1 als numerischen Standardwert zu verwenden (dasselbe, was es mit 151 getan hat)?

+0

Vielleicht wollten Sie nur '..ncount..' statt ...? – joran

+2

Pls. Bereitstellung reproduzierbarer Dateneingabe in ggplot2. Es ist mir nicht klar, dass du f1 so berechnen musst, wenn du (..count ..)/sum (.. count ..) kannst – Djork

+0

Ah, '..ncount..' ist mit diesem Stat nicht verfügbar . – joran

Antwort

0

Die Lösung für mein Problem war einfach ersetzen (.. count ../ 151 * 100) mit ((.. count ..)/Summe (.. count ..) * 100) als @ R.S. empfohlen. Danke an alle.

Verwandte Themen