CASO 2. Tablas de Frecuencias

Objetivo: Generar tablas de frecuencias con un conjunto de datos de 100 registros

Descripción: Crear un conjunto de datos de 100 registros con cuatro variables:nombre, genero, edad y deporte favorito de cada persona. Una vez construido elconjunto de datos elaborar tablas de frecuencias de los nombres, géneros (sexo) ydeporte favorito; de igual forma determinar la tabla de frecuencia de las edades de las personas.

1. Cargar librerías fdth

  • La librería fdth permite generar tablas de frecuencias
library(fdth)

2. Crear conjunto de datos llamado personas

  1. Crear 100 nombres a partir de 20 nombres (nombres)
  2. Crear aleatorio el género entre Femenino y Masculino (generos)
  3. Crear la edad aleatorio entre 15 y 60 (edades)
  4. Crear el deporte favorito de cada persona aleatorio entre 10 (deportes)
losnombres <- c("ALEJANDRO","JOSE","DANIELA","VIOLETA","EMMANUEL","JORGE","PABLO","CARLOS","LUIS","ROBERTO","MARIA","LUIS","EDUARDO","FERNANDO","ENRIQUE","DIEGO","ROSARIO","ALEX","CLAUDIA","VANESSA")
nombres <- sample(losnombres,100,replace = TRUE)
nombres
##   [1] "VANESSA"   "DANIELA"   "EMMANUEL"  "ALEJANDRO" "EDUARDO"   "JOSE"     
##   [7] "CARLOS"    "JOSE"      "EDUARDO"   "LUIS"      "VANESSA"   "VANESSA"  
##  [13] "DIEGO"     "ROBERTO"   "DIEGO"     "LUIS"      "DANIELA"   "EDUARDO"  
##  [19] "JOSE"      "ALEX"      "EMMANUEL"  "ENRIQUE"   "ALEX"      "EDUARDO"  
##  [25] "JORGE"     "ALEX"      "JORGE"     "JOSE"      "ROBERTO"   "LUIS"     
##  [31] "EMMANUEL"  "ROBERTO"   "EDUARDO"   "VANESSA"   "LUIS"      "LUIS"     
##  [37] "DIEGO"     "VIOLETA"   "CLAUDIA"   "ROBERTO"   "ALEJANDRO" "ALEX"     
##  [43] "VIOLETA"   "FERNANDO"  "DANIELA"   "VANESSA"   "MARIA"     "ENRIQUE"  
##  [49] "CARLOS"    "PABLO"     "EMMANUEL"  "CARLOS"    "MARIA"     "EMMANUEL" 
##  [55] "CARLOS"    "PABLO"     "EMMANUEL"  "ROSARIO"   "VANESSA"   "DIEGO"    
##  [61] "CLAUDIA"   "EMMANUEL"  "LUIS"      "FERNANDO"  "MARIA"     "MARIA"    
##  [67] "ALEJANDRO" "FERNANDO"  "VIOLETA"   "CLAUDIA"   "FERNANDO"  "CLAUDIA"  
##  [73] "LUIS"      "VIOLETA"   "MARIA"     "LUIS"      "VANESSA"   "EMMANUEL" 
##  [79] "ALEJANDRO" "LUIS"      "VANESSA"   "ROBERTO"   "ENRIQUE"   "DANIELA"  
##  [85] "ENRIQUE"   "DANIELA"   "ALEJANDRO" "ALEJANDRO" "JORGE"     "ENRIQUE"  
##  [91] "JOSE"      "EDUARDO"   "ALEJANDRO" "FERNANDO"  "ALEJANDRO" "ALEX"     
##  [97] "ROSARIO"   "EDUARDO"   "LUIS"      "JORGE"
generos <- sample(c("Femenino","Masculino"), 100, replace = TRUE)

edades <- sample(15:60, 100 ,replace = TRUE)

misdeportes <- c("FUTBOL","BASQUETBOL","TENIS","BEISBOL","NATACIÓN","BOX","AJEDREZ","KARATE","ATLETISMO","FUTBOL AMERICANO","VOLEIBOL")
deportes <- sample(misdeportes, 100, replace = TRUE)

personal <- data.frame(nombres,generos,edades,deportes)

3. Crear tabla de frecuencias con table() de la variable nombres

La variable de interés es nombres Table() genera la frecuencia de cada elemento transform transforma … significa renglones columnas con data.frame se consrtuye un data.frame *con names() se modifica los nombres de variables de un data.name

#transform(table(personal$nombres))
tabla_frec.nombres <- data.frame(transform(table(personal$nombres)))
names(tabla_frec.nombres) <-c("nombres","freq") 
tabla_frec.nombres
##      nombres freq
## 1  ALEJANDRO    8
## 2       ALEX    5
## 3     CARLOS    4
## 4    CLAUDIA    4
## 5    DANIELA    5
## 6      DIEGO    4
## 7    EDUARDO    7
## 8   EMMANUEL    8
## 9    ENRIQUE    5
## 10  FERNANDO    5
## 11     JORGE    4
## 12      JOSE    5
## 13      LUIS   10
## 14     MARIA    5
## 15     PABLO    2
## 16   ROBERTO    5
## 17   ROSARIO    2
## 18   VANESSA    8
## 19   VIOLETA    4
  • Total de elementos N
N <- nrow(personal)
N
## [1] 100
  • b Determinar frecuencia relvativa
freq.r <- tabla_frec.nombres$freq / N
freq.r
##  [1] 0.08 0.05 0.04 0.04 0.05 0.04 0.07 0.08 0.05 0.05 0.04 0.05 0.10 0.05 0.02
## [16] 0.05 0.02 0.08 0.04
  • c Determinar frecuencia porcentual
freq.p <- freq.r * 100
freq.p
##  [1]  8  5  4  4  5  4  7  8  5  5  4  5 10  5  2  5  2  8  4
  • Construyendo tabla de Distribucion
tabla_frec.nombres <- cbind(tabla_frec.nombres, freq.r, freq.p)
tabla_frec.nombres
##      nombres freq freq.r freq.p
## 1  ALEJANDRO    8   0.08      8
## 2       ALEX    5   0.05      5
## 3     CARLOS    4   0.04      4
## 4    CLAUDIA    4   0.04      4
## 5    DANIELA    5   0.05      5
## 6      DIEGO    4   0.04      4
## 7    EDUARDO    7   0.07      7
## 8   EMMANUEL    8   0.08      8
## 9    ENRIQUE    5   0.05      5
## 10  FERNANDO    5   0.05      5
## 11     JORGE    4   0.04      4
## 12      JOSE    5   0.05      5
## 13      LUIS   10   0.10     10
## 14     MARIA    5   0.05      5
## 15     PABLO    2   0.02      2
## 16   ROBERTO    5   0.05      5
## 17   ROSARIO    2   0.02      2
## 18   VANESSA    8   0.08      8
## 19   VIOLETA    4   0.04      4
  1. Crear tabla de frecuencias con fdt_cat() de la variable nombres
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       LUIS   10   0.10     10        10            10
## 2  ALEJANDRO    8   0.08      8        18            18
## 3   EMMANUEL    8   0.08      8        26            26
## 4    VANESSA    8   0.08      8        34            34
## 5    EDUARDO    7   0.07      7        41            41
## 6       ALEX    5   0.05      5        46            46
## 7    DANIELA    5   0.05      5        51            51
## 8    ENRIQUE    5   0.05      5        56            56
## 9   FERNANDO    5   0.05      5        61            61
## 10      JOSE    5   0.05      5        66            66
## 11     MARIA    5   0.05      5        71            71
## 12   ROBERTO    5   0.05      5        76            76
## 13    CARLOS    4   0.04      4        80            80
## 14   CLAUDIA    4   0.04      4        84            84
## 15     DIEGO    4   0.04      4        88            88
## 16     JORGE    4   0.04      4        92            92
## 17   VIOLETA    4   0.04      4        96            96
## 18     PABLO    2   0.02      2        98            98
## 19   ROSARIO    2   0.02      2       100           100
  1. Visualizer tabla de frecuencias de nombres (BARRA)
barplot(height = tabla_frec.nombres.2$freq, names.arg = tabla_frec.nombres.2$nombres)

6. Visualizar un histograma de la Variable Edades

hist(personal$edades, main = "Frecuencia de edades", xlab = "Edades", ylab = "Frecuencias")

7. Crear Tabla de frecuencias con table() de la variable EDADES

tabla.frec.edades <- data.frame(transform(table(personal$edades)))
# tabla.frecuencias.edades

names(tabla.frec.edades) <- c("edades", "freq")
tabla.frec.edades
##    edades freq
## 1      15    3
## 2      16    4
## 3      17    3
## 4      18    3
## 5      19    2
## 6      20    3
## 7      21    1
## 8      22    2
## 9      23    3
## 10     24    2
## 11     26    1
## 12     27    1
## 13     28    4
## 14     30    4
## 15     31    7
## 16     32    2
## 17     33    2
## 18     34    2
## 19     35    3
## 20     36    1
## 21     37    1
## 22     39    4
## 23     40    2
## 24     41    3
## 25     42    3
## 26     43    3
## 27     45    1
## 28     47    5
## 29     48    1
## 30     50    3
## 31     51    2
## 32     52    4
## 33     53    3
## 34     54    1
## 35     55    4
## 36     57    1
## 37     58    2
## 38     59    3
## 39     60    1
  1. Crear tabla de Frecuencias con fdt() de la variable EDADES
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.57)   18   0.18     18        18            18
## 2 [20.57,26.29)    9   0.09      9        27            27
## 3 [26.29,32.01)   18   0.18     18        45            45
## 4 [32.01,37.73)    9   0.09      9        54            54
## 5 [37.73,43.44)   15   0.15     15        69            69
## 6 [43.44,49.16)    7   0.07      7        76            76
## 7 [49.16,54.88)   13   0.13     13        89            89
## 8  [54.88,60.6)   11   0.11     11       100           100
  1. Visualizar tabla de frecuencias de EDADES (BARRA)
barplot(height = tabla.frec.edades_2$freq, 
        names.arg = tabla.frec.edades_2$clases,
        main = "Frecuencias de Clases",
        xlab = "Clases de edades", ylab = "Frecuencias")

10. Crear tabla de Frecuencias con fdt_cat() de la variable GENERO

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   54   0.54     54        54            54
## 2 Masculino   46   0.46     46       100           100
  1. Visualizar tabla de frecuencias de GENEROS (BARRA)
barplot(height = tabla_frec.genero$freq, 
        names.arg = tabla_frec.genero$generos,
        main = "Frecuencias de Géneros",
        xlab = "Géneros", ylab = "Frecuencias")

pie(x = tabla_frec.genero$freq, 
    labels = tabla_frec.genero$generos,
    col = c(155,100))

12. Crear tabla de frecuencias con fdt_cat() de a variable DEPORTES

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  FUTBOL AMERICANO   15   0.15     15        15            15
## 2            FUTBOL   12   0.12     12        27            27
## 3           AJEDREZ   10   0.10     10        37            37
## 4         ATLETISMO   10   0.10     10        47            47
## 5             TENIS   10   0.10     10        57            57
## 6           BEISBOL    9   0.09      9        66            66
## 7        BASQUETBOL    8   0.08      8        74            74
## 8          NATACIÓN    7   0.07      7        81            81
## 9          VOLEIBOL    7   0.07      7        88            88
## 10              BOX    6   0.06      6        94            94
## 11           KARATE    6   0.06      6       100           100
  1. Visualizar tabla de frecuencias de DEPORTES (BARRA)
barplot(height = tabla_frec.deporte$freq, 
        names.arg = tabla_frec.deporte$deportes,
        main = "Frecuencias de deportes",
        xlab = "Deportes", ylab = "Frecuencias")

14. Describir el CASO 2

Deacuerdo al caso y la tabla de EDADES refleja que hay muchas personas en la edad de 23 y 42 años.

En la tabla de NOMBRES, salio que muchas personas se llaman Luis (10) y Pablo (11)