2010-11-01 8 views
13

Wie benutzt man hist() um relative Häufigkeiten in R zu plotten?Wie benutzt man Hist um relative Häufigkeiten in R zu plotten?

Wenn ich folgendes tun, werde ich eine Dichte Grundstück bekommen, aber ich möchte eine relative Häufigkeit Grundstück:

a <- c(0,0,0,1,1,2) 
hist(a, freq=FALSE) 

Ich möchte ein Histogramm mit den folgenden relativen Häufigkeiten sehen:

0,5 für 0 bis 1

.33 für 1 bis 2,

.166 und für 2 bis 3

+0

anscheinend kann man nicht freq = TRUE mit Plot = FALSE verwenden, so ist dies eine gute Frage mit einigen guten Antworten unten, danke. – PatrickT

+0

Mögliches Duplikat von [Use hist() - Funktion in R, um Prozentsätze im Gegensatz zu Raw-Häufigkeiten zu erhalten] (http://stackoverflow.com/questions/7324683/use-hist-function-in-r-to-get-percentages- im Gegensatz zu Raw-Frequenzen) – majom

Antwort

13

können Sie versuchen, die histogram() Funktion in Gitter

a <- c(0,0,0,1,1,2) 
library(lattice) 
histogram(a) 

standardmäßig Prozent verwenden.

+1

Schade, dass es eine so hässliche Farbe als Standard verwendet :) – zoltanctoth

6
hist(a, breaks=c(0, 1, 2, 3), freq=FALSE, right=FALSE) 
2

nicht richtig ein traditionelles Histogramm ...

h<-hist(yourdata) 
plot(h$mids,100*h$counts/sum(h$counts),type="h") 
1
histo<-hist(yourvariable) 
barplot(histo$counts/n,col="white",space=0)->bp # n=length(yourvariable) 
axis(1,at=c(bp),labels=histo$mids) 
title(ylab="Relative Frequency",xlab="Your Variable Name") 
7

ich eine neue Funktion zum HistogramTools Paket auf CRAN hinzugefügt habe, PlotRelativeFrequency(), die ein Objekt Histogramm nimmt und eine relative Frequenz Histogramm-Plot. Dies ist jetzt verfügbar von R-Forge und wird in HistogramTools 0.3 für die nächste CRAN Release sein.

Im Grunde müssen Sie nur zwei Änderungen an den Standardhistogrammen in R vornehmen. Zuerst müssen Sie jede Zählung durch die Summe aller Zählungen teilen, und Sie müssen die y-Achsenbeschriftung ersetzen, um dies zu beachten Es zeichnet jetzt Relative Frequenzen auf.

x<-runif(100) 
h<-hist(x, plot=F) 
h$counts <- h$counts/sum(h$counts) 
plot(h, freq=TRUE, ylab="Relative Frequency") 

Oder einfach

install.packages("HistogramTools", repos="http://R-Forge.R-project.org") 
library(HistogramTools) 
PlotRelativeFrequency(hist(x, plot=F)) 

enter image description here

Verwandte Themen