una tabla relativa poligono para ojiva intervalos histograma hacer frecuencias frecuencia datos crear contar con como clase agrupados acumulada r histogram frequency cumulative-frequency

tabla - poligono de frecuencia en r



Cómo generar una tabla de frecuencia en R con frecuencia acumulativa y frecuencia relativa (5)

¡Usted está cerca! Hay algunas funciones que lo harán fácil para usted, como cumsum() y prop.table() . Así es como probablemente pondría esto junto. Hago algunos datos al azar, pero el punto es el mismo:

#Fake data x <- sample(10:20, 44, TRUE) #Your code factorx <- factor(cut(x, breaks=nclass.Sturges(x))) #Tabulate and turn into data.frame xout <- as.data.frame(table(factorx)) #Add cumFreq and proportions xout <- transform(xout, cumFreq = cumsum(Freq), relative = prop.table(Freq)) #----- factorx Freq cumFreq relative 1 (9.99,11.4] 11 11 0.25000000 2 (11.4,12.9] 3 14 0.06818182 3 (12.9,14.3] 11 25 0.25000000 4 (14.3,15.7] 2 27 0.04545455 5 (15.7,17.1] 6 33 0.13636364 6 (17.1,18.6] 3 36 0.06818182 7 (18.6,20] 8 44 0.18181818

Soy nuevo en R. Necesito generar una tabla de frecuencia simple (como en los libros) con frecuencia acumulativa y relativa.

Así que quiero generar a partir de algunos datos simples como

> x [1] 17 17 17 17 17 17 17 17 16 16 16 16 16 18 18 18 10 12 17 17 17 17 17 17 17 17 16 16 16 16 16 18 18 18 10 [36] 12 15 19 20 22 20 19 19 19

una mesa como

frequency cumulative relative (9.99,11.7] 2 2 0.04545455 (11.7,13.4] 2 4 0.04545455 (13.4,15.1] 1 5 0.02272727 (15.1,16.9] 10 15 0.22727273 (16.9,18.6] 22 37 0.50000000 (18.6,20.3] 6 43 0.13636364 (20.3,22] 1 44 0.02272727

Sé que debería ser simple, pero no sé cómo.

Obtuve algunos resultados usando este código:

factorx <- factor(cut(x, breaks=nclass.Sturges(x))) as.matrix(table(factorx))


La table funciones básicas, cumsum y prop.table deben prop.table allí:

cbind( Freq=table(x), Cumul=cumsum(table(x)), relative=prop.table(table(x))) Freq Cumul relative 10 2 2 0.04545455 12 2 4 0.04545455 15 1 5 0.02272727 16 10 15 0.22727273 17 16 31 0.36363636 18 6 37 0.13636364 19 4 41 0.09090909 20 2 43 0.04545455 22 1 44 0.02272727

Con cbind y el nombramiento de las columnas a su gusto, esto debería ser bastante fácil para usted en el futuro. La salida de la función de tabla es una matriz, por lo que este resultado también es una matriz. Si esto se hiciera en algo grande, sería más eficiente hacerlo:

tbl <- table(x) cbind( Freq=tbl, Cumul=cumsum(tbl), relative=prop.table(tbl))


Mi sugerencia es revisar el paquete de agricolae ... échale un vistazo:

library(agricolae) weight<-c( 68, 53, 69.5, 55, 71, 63, 76.5, 65.5, 69, 75, 76, 57, 70.5, + 71.5, 56, 81.5, 69, 59, 67.5, 61, 68, 59.5, 56.5, 73, + 61, 72.5, 71.5, 59.5, 74.5, 63) h1<- graph.freq(weight,col="yellow",frequency=1,las=2,xlab="h1") print(summary(h1),row.names=FALSE)


Otra posibilidad más:

library(SciencesPo) x = c(sample(10:20, 50, TRUE)) freq(x)


Si está buscando algo preempaquetado, considere la función freq() del paquete descr .

library(descr) x = c(sample(10:20, 44, TRUE)) freq(x, plot = FALSE)

O para obtener porcentajes acumulativos, use la función ordered()

freq(ordered(x), plot = FALSE)

Para agregar una columna de "frecuencias acumulativas":

tab = as.data.frame(freq(ordered(x), plot = FALSE)) CumFreq = cumsum(tab[-dim(tab)[1],]$Frequency) tab$CumFreq = c(CumFreq, NA) tab

Si a sus datos les faltan valores, se agregará una columna de porcentaje válido a la tabla.

x = c(sample(10:20, 44, TRUE), NA, NA) freq(ordered(x), plot = FALSE)