*Generar tablas de frecuencias con un conjunto de datos de 100 registros
*Crear un conjunto de datos de 100 registros con cuatro variables: nombre, genero, edad y deporte favorito de cada persona. Una vez construido el conjunto de datos elaborar tablas de frecuencias de los nombres, géneros (sexo) y deporte favorito; de igual forma determinar la tabla de frecuencia de las edades de las personas.
##install.packages("fdth")
library(fdth)
##
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
##
## sd, var
*Sembrar una semila set.seed()
set.seed(8)
Crear 100 nombres a partir de 20 nombres Crear aleatorio el género entre Femenino y Masculino Crear la edad aletorio entre 15 y 60 Crear el deporte favorito de cada persona aleatorio entre 10
losnombres <- c("Vanessa", "Rebeca", "Melissa", "Michelle", "Gorety", "Victoria", "Ashley", "Abigail", "Andrea", "Viridiana", "Cristian", "Ernesto", "Oscar", "David", "Jarold", "Lucas", "Patricio", "Ricardo", "Acxel", "Armando")
nombres <- sample(losnombres, 100, replace = TRUE)
generos <- sample(c('Femenino', 'Masculino'), 100, replace = TRUE)
edades <- sample(15:60, 100, replace = TRUE)
misdeportes <- c("Basquetball", "Futbol Soccer", "Bolley Ball", "Tennis", "Golf", "Natacion", "Futbol Americano", "Atletismo", "Ping Pong", "Beisball")
deportes <- sample(misdeportes, 100, replace = TRUE)
personal <- data.frame(nombres, generos, edades, deportes)
Determinar frecuencia absoluta Determinar frecuencia relativa *Determinar frecuencia porcentual
tabla_frec.nombres <- data.frame(transform(table(personal$nombres)))
names(tabla_frec.nombres) <- c('nombres', 'freq')
tabla_frec.nombres
## nombres freq
## 1 Abigail 5
## 2 Acxel 5
## 3 Andrea 5
## 4 Armando 8
## 5 Ashley 6
## 6 Cristian 3
## 7 David 2
## 8 Ernesto 10
## 9 Gorety 2
## 10 Jarold 4
## 11 Lucas 6
## 12 Melissa 5
## 13 Michelle 5
## 14 Oscar 4
## 15 Patricio 2
## 16 Rebeca 6
## 17 Ricardo 6
## 18 Vanessa 4
## 19 Victoria 8
## 20 Viridiana 4
N <- nrow(personal)
N
## [1] 100
freq.r <- tabla_frec.nombres$freq / N
freq.r
## [1] 0.05 0.05 0.05 0.08 0.06 0.03 0.02 0.10 0.02 0.04 0.06 0.05 0.05 0.04 0.02
## [16] 0.06 0.06 0.04 0.08 0.04
freq.p <- freq.r * 100
freq.p
## [1] 5 5 5 8 6 3 2 10 2 4 6 5 5 4 2 6 6 4 8 4
tabla_frec.nombres <- cbind(tabla_frec.nombres, freq.r, freq.p)
tabla_frec.nombres
## nombres freq freq.r freq.p
## 1 Abigail 5 0.05 5
## 2 Acxel 5 0.05 5
## 3 Andrea 5 0.05 5
## 4 Armando 8 0.08 8
## 5 Ashley 6 0.06 6
## 6 Cristian 3 0.03 3
## 7 David 2 0.02 2
## 8 Ernesto 10 0.10 10
## 9 Gorety 2 0.02 2
## 10 Jarold 4 0.04 4
## 11 Lucas 6 0.06 6
## 12 Melissa 5 0.05 5
## 13 Michelle 5 0.05 5
## 14 Oscar 4 0.04 4
## 15 Patricio 2 0.02 2
## 16 Rebeca 6 0.06 6
## 17 Ricardo 6 0.06 6
## 18 Vanessa 4 0.04 4
## 19 Victoria 8 0.08 8
## 20 Viridiana 4 0.04 4
fdt_cat() es una función que genera la tabla de distribución La variable de interés sigue siendo nombres Genera los mismos valores que ‘tabla_frec.nombres’ , sólo que se agregan los acumulados La función data.frame() convierte la tabla de distribución generada por fdt_cat() en un data.frame (conjunto de datos). La función names() cambia los nombres de la tabla_frec.nombres.2 Finalmente la tabla de distribución generada se construye ordenado de mayor a menor con repecto a la frecuencia
tabla_frec.nombres.2 <- data.frame(fdt_cat(personal$nombres))
names(tabla_frec.nombres.2) <- c('nombres', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla_frec.nombres.2
## nombres freq freq.r freq.p freq.acum frec.por.acum
## 1 Ernesto 10 0.10 10 10 10
## 2 Armando 8 0.08 8 18 18
## 3 Victoria 8 0.08 8 26 26
## 4 Ashley 6 0.06 6 32 32
## 5 Lucas 6 0.06 6 38 38
## 6 Rebeca 6 0.06 6 44 44
## 7 Ricardo 6 0.06 6 50 50
## 8 Abigail 5 0.05 5 55 55
## 9 Acxel 5 0.05 5 60 60
## 10 Andrea 5 0.05 5 65 65
## 11 Melissa 5 0.05 5 70 70
## 12 Michelle 5 0.05 5 75 75
## 13 Jarold 4 0.04 4 79 79
## 14 Oscar 4 0.04 4 83 83
## 15 Vanessa 4 0.04 4 87 87
## 16 Viridiana 4 0.04 4 91 91
## 17 Cristian 3 0.03 3 94 94
## 18 David 2 0.02 2 96 96
## 19 Gorety 2 0.02 2 98 98
## 20 Patricio 2 0.02 2 100 100
barplot(height = tabla_frec.nombres.2$freq, names.arg = tabla_frec.nombres.2$nombres)
#### Visualizar un histograma de la variable edades
hist(personal$edades, main = "Frecuencia de edades", xlab = "Edades", ylab = "Frecuencias")
#### Crear tabla de frecuencias con table() de la variable edades La función table() genera frecuencias
tabla.frec.edades <- data.frame(transform(table(personal$edades)))
names(tabla.frec.edades) <- c("edades", "freq")
tabla.frec.edades
## edades freq
## 1 15 2
## 2 16 4
## 3 17 2
## 4 18 3
## 5 19 2
## 6 20 1
## 7 21 1
## 8 22 2
## 9 23 3
## 10 24 3
## 11 25 2
## 12 26 4
## 13 27 2
## 14 28 2
## 15 29 2
## 16 30 3
## 17 31 2
## 18 32 4
## 19 34 1
## 20 35 2
## 21 36 4
## 22 38 2
## 23 40 1
## 24 41 4
## 25 42 1
## 26 43 1
## 27 44 1
## 28 45 3
## 29 46 2
## 30 47 3
## 31 48 6
## 32 49 3
## 33 50 3
## 34 51 3
## 35 52 2
## 36 53 1
## 37 54 1
## 38 55 3
## 39 56 2
## 40 57 1
## 41 58 5
## 42 59 1
barplot(height = tabla.frec.edades$freq,
names.arg = tabla.frec.edades$edades,
main = "Frecuencias de Edades",
xlab = "Edades", ylab = "Frecuencias")
#### Crear tabla de frecuencias con fdt() de la variable edades Determinar frecuencia absoluta Determinar frecuencia relativa Determinar frecuencia porcentual Determinar frecuencia acumulada *Determinar frecuencia porcentual acumulada
tabla.frec.edades_2 <- fdt(personal$edades)
tabla.frec.edades_2 <- data.frame(tabla.frec.edades_2$table)
names(tabla.frec.edades_2) <- c('clases', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla.frec.edades_2
## clases freq freq.r freq.p freq.acum frec.por.acum
## 1 [14.85,20.442) 14 0.14 14 14 14
## 2 [20.442,26.035) 15 0.15 15 29 29
## 3 [26.035,31.627) 11 0.11 11 40 40
## 4 [31.627,37.22) 11 0.11 11 51 51
## 5 [37.22,42.812) 8 0.08 8 59 59
## 6 [42.812,48.405) 16 0.16 16 75 75
## 7 [48.405,53.998) 12 0.12 12 87 87
## 8 [53.998,59.59) 13 0.13 13 100 100
barplot(height = tabla.frec.edades_2$freq,
names.arg = tabla.frec.edades_2$clases,
main = "Frecuencias de Clases",
xlab = "Clases de edades", ylab = "Frecuencias")
#### Crear tabla de frecuencias con fdt_cat() de la variable genero Determinar frecuencia absoluta Determinar frecuencia relativa Determinar frecuencia porcentual Determinar frecuencia acumulada *Determinar frecuencia porcentual acumulada
tabla_frec.genero <- data.frame(fdt_cat(personal$generos))
names(tabla_frec.genero) <- c('generos', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla_frec.genero
## generos freq freq.r freq.p freq.acum frec.por.acum
## 1 Femenino 51 0.51 51 51 51
## 2 Masculino 49 0.49 49 100 100
barplot(height = tabla_frec.genero$freq,
names.arg = tabla_frec.genero$generos,
main = "Frecuencias de Géneros",
xlab = "Géneros", ylab = "Frecuencias")
#### Crear tabla de frecuencias con fdt_cat() de a variable deportes Determinar frecuencia absoluta Determinar frecuencia relativa Determinar frecuencia porcentual Determinar frecuencia acumulada *Determinar frecuencia porcentual acumulada
tabla_frec.deporte <- data.frame(fdt_cat(personal$deportes))
names(tabla_frec.deporte) <- c('deportes', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla_frec.deporte
## deportes freq freq.r freq.p freq.acum frec.por.acum
## 1 Atletismo 14 0.14 14 14 14
## 2 Futbol Soccer 13 0.13 13 27 27
## 3 Beisball 12 0.12 12 39 39
## 4 Bolley Ball 12 0.12 12 51 51
## 5 Golf 11 0.11 11 62 62
## 6 Ping Pong 11 0.11 11 73 73
## 7 Tennis 10 0.10 10 83 83
## 8 Futbol Americano 8 0.08 8 91 91
## 9 Basquetball 5 0.05 5 96 96
## 10 Natacion 4 0.04 4 100 100
barplot(height = tabla_frec.deporte$freq,
names.arg = tabla_frec.deporte$deportes,
main = "Frecuencias de deportes",
xlab = "Deportes", ylab = "Frecuencias")
#### Describir el caso. Por medio de 80 a 100 palabras describir el CASO 2 En conclusión, como podemos apreciar las tablas y graficas nos permiten apreciar de mejor manera los datos, podemos tener una mejor interpretación con la cual podemos llegar a distintos puntos de vista de observaciones. En este caso en específico podemos sacar a simple vista cuales son los nombres, géneros, e incluso los deportes más frecuentes en nuestra fuente de datos. Pudimos llevar de una manera más completa el manejo de fórmulas de frecuencia, dando un gran paso para un mejor manejo de datos.