2010-11-01 28 views
13

Comment utilisez-vous hist() pour tracer les fréquences relatives dans R?Comment utilisez-vous hist pour tracer les fréquences relatives dans R?

Si je fais ce qui suit, je vais obtenir une parcelle de densité, mais je veux une parcelle de fréquence relative:

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

Je veux voir un histogramme des fréquences relatives suivantes:

0,5 de 0 à 1,

0,33 pour 1 à 2,

et 0,166 à 2 à 3.

+0

apparemment, vous ne pouvez pas utiliser fréq = TRUE avec terrain = FAUX, alors ceci est une bonne question avec quelques bonnes réponses ci-dessous, merci. – PatrickT

+0

Possible dupliquer de [Utiliser la fonction hist() dans R pour obtenir des pourcentages par opposition aux fréquences brutes] (http://stackoverflow.com/questions/7324683/use-hist-function-in-r-to-get-percentages- comme-opposé-à-fréquences-brutes) – majom

Répondre

13

vous pouvez essayer d'utiliser la fonction histogram() en treillis

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

par défaut pour cent.

+1

Quel dommage qu'il utilise une couleur si laide par défaut :) – zoltanctoth

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

pas correctement un histogramme traditionnel ...

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

J'ai ajouté une nouvelle fonction à l'ensemble HistogramTools sur Cran, PlotRelativeFrequency() qui prend un objet histogramme et génère une fréquence relative histogramme. Ceci est maintenant disponible à partir de R-Forge et sera dans HistogramTools 0.3 pour la prochaine version CRAN. Fondamentalement, vous avez juste besoin d'apporter deux modifications aux histogrammes par défaut dans R. Tout d'abord, vous devez diviser chaque nombre par la somme de tous les nombres, et vous devez remplacer l'étiquette de l'axe des y pour noter que il est en train de tracer les fréquences relatives.

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

Ou, tout simplement

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

enter image description here