2010-11-01 8 views
13

Come si usa hist() per tracciare le frequenze relative in R?Come si usa hist per tracciare le frequenze relative in R?

Se faccio il seguente, mi metterò una trama densità, ma voglio una trama frequenza relativa:

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

Voglio vedere un istogramma con le seguenti frequenze relative:

.5 per 0 a 1,

.33 per 1 a 2,

e .166 per 2 a 3.

+0

a quanto pare non è possibile utilizzare freq = TRUE con trama = FALSE, quindi questa è una buona domanda con alcune buone risposte qui sotto, grazie. – PatrickT

+0

Possibile duplicato di [Usare la funzione hist() in R per ottenere percentuali rispetto alle frequenze grezze] (http://stackoverflow.com/questions/7324683/use-hist-function-in-r-to-get-percentages- as-oppos-to-raw-frequenze) – majom

risposta

13

si può provare a utilizzare la funzione histogram() in lattice

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

default per cento.

+1

Che peccato che usi un colore così brutto come predefinito :) – zoltanctoth

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

correttamente un istogramma tradizionale ...

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

Ho una nuova funzione al pacchetto HistogramTools su CRAN, PlotRelativeFrequency() che prende un oggetto istogramma e genera una frequenza relativa trama dell'istogramma. Questo è disponibile ora da R-Forge e sarà in HistogramTools 0.3 per la prossima versione CRAN.

In pratica, è sufficiente apportare due modifiche agli istogrammi predefiniti in R. In primo luogo, è necessario dividere ciascun conteggio per la somma di tutti i conteggi e è necessario sostituire l'etichetta dell'asse y per notare che ora sta tracciando le frequenze relative.

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

Oppure, semplicemente

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

enter image description here

Problemi correlati