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

Sembrar una semila set.seed()

set.seed(2024) 
  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("PEPE","AURON","ALAN","MEMO","RICHI","JORGE","PAOLA","CARLOS","LUIS","GUILLERMO","MARIA","LUISA","EDUARDO","ALEJANDRO","ENRIQUE","DIEGO","VIRIDIANA","ALEJANDRA","PAMELA","DIANA")
nombres <- sample(losnombres,100,replace = TRUE)
nombres
##   [1] "AURON"     "RICHI"     "EDUARDO"   "VIRIDIANA" "EDUARDO"   "LUIS"     
##   [7] "AURON"     "MARIA"     "DIEGO"     "ALEJANDRO" "AURON"     "LUISA"    
##  [13] "ALEJANDRA" "PEPE"      "MARIA"     "ALAN"      "LUIS"      "ALEJANDRO"
##  [19] "VIRIDIANA" "DIEGO"     "DIANA"     "DIANA"     "MARIA"     "DIANA"    
##  [25] "DIANA"     "GUILLERMO" "MEMO"      "PAOLA"     "DIANA"     "DIEGO"    
##  [31] "DIANA"     "ALAN"      "AURON"     "VIRIDIANA" "VIRIDIANA" "ALAN"     
##  [37] "PEPE"      "JORGE"     "DIANA"     "LUIS"      "ENRIQUE"   "EDUARDO"  
##  [43] "DIEGO"     "MARIA"     "AURON"     "VIRIDIANA" "PAMELA"    "LUISA"    
##  [49] "RICHI"     "DIEGO"     "JORGE"     "ALAN"      "PEPE"      "MARIA"    
##  [55] "PAMELA"    "LUIS"      "ALAN"      "MARIA"     "DIANA"     "ALEJANDRO"
##  [61] "DIEGO"     "MEMO"      "ALEJANDRO" "VIRIDIANA" "CARLOS"    "LUIS"     
##  [67] "DIANA"     "DIEGO"     "ALEJANDRA" "MARIA"     "AURON"     "PAMELA"   
##  [73] "LUISA"     "VIRIDIANA" "AURON"     "LUIS"      "DIEGO"     "EDUARDO"  
##  [79] "JORGE"     "MEMO"      "VIRIDIANA" "ENRIQUE"   "DIEGO"     "EDUARDO"  
##  [85] "PAOLA"     "ALAN"      "MEMO"      "PAOLA"     "MARIA"     "ALEJANDRO"
##  [91] "MARIA"     "LUIS"      "ENRIQUE"   "AURON"     "CARLOS"    "GUILLERMO"
##  [97] "PAMELA"    "AURON"     "VIRIDIANA" "ALEJANDRO"
generos <- sample(c("Femenino","Masculino"), 100, replace = TRUE)

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

misdeportes <- c("FUTBOL","BASQUETBOL","BEISBOL","TENIS","NATACIÓN","BOX","AJEDREZ","KARATE","ATLETISMO","AMERICANO","CROSSFIT")
deportes <- sample(misdeportes, 100, replace = TRUE)
deportes
##   [1] "BEISBOL"    "KARATE"     "CROSSFIT"   "KARATE"     "CROSSFIT"  
##   [6] "CROSSFIT"   "NATACIÓN"   "BASQUETBOL" "AMERICANO"  "FUTBOL"    
##  [11] "KARATE"     "TENIS"      "AJEDREZ"    "ATLETISMO"  "NATACIÓN"  
##  [16] "TENIS"      "TENIS"      "NATACIÓN"   "BEISBOL"    "TENIS"     
##  [21] "AMERICANO"  "BOX"        "KARATE"     "BEISBOL"    "NATACIÓN"  
##  [26] "KARATE"     "BEISBOL"    "KARATE"     "AMERICANO"  "NATACIÓN"  
##  [31] "AMERICANO"  "AJEDREZ"    "BASQUETBOL" "BEISBOL"    "AJEDREZ"   
##  [36] "NATACIÓN"   "KARATE"     "AJEDREZ"    "AJEDREZ"    "BOX"       
##  [41] "KARATE"     "ATLETISMO"  "TENIS"      "AJEDREZ"    "BOX"       
##  [46] "AMERICANO"  "BOX"        "KARATE"     "CROSSFIT"   "ATLETISMO" 
##  [51] "FUTBOL"     "KARATE"     "BASQUETBOL" "TENIS"      "FUTBOL"    
##  [56] "NATACIÓN"   "BASQUETBOL" "KARATE"     "CROSSFIT"   "FUTBOL"    
##  [61] "ATLETISMO"  "TENIS"      "FUTBOL"     "TENIS"      "BASQUETBOL"
##  [66] "FUTBOL"     "FUTBOL"     "BEISBOL"    "AJEDREZ"    "BOX"       
##  [71] "AMERICANO"  "TENIS"      "BEISBOL"    "AJEDREZ"    "NATACIÓN"  
##  [76] "ATLETISMO"  "FUTBOL"     "BEISBOL"    "BEISBOL"    "KARATE"    
##  [81] "AMERICANO"  "FUTBOL"     "BASQUETBOL" "CROSSFIT"   "ATLETISMO" 
##  [86] "AMERICANO"  "AMERICANO"  "NATACIÓN"   "KARATE"     "AJEDREZ"   
##  [91] "ATLETISMO"  "CROSSFIT"   "CROSSFIT"   "BASQUETBOL" "AMERICANO" 
##  [96] "BOX"        "BEISBOL"    "BEISBOL"    "AMERICANO"  "FUTBOL"
personal <- data.frame(nombres,generos,edades,deportes)
personal
##       nombres   generos edades   deportes
## 1       AURON Masculino     47    BEISBOL
## 2       RICHI  Femenino     19     KARATE
## 3     EDUARDO  Femenino     46   CROSSFIT
## 4   VIRIDIANA  Femenino     51     KARATE
## 5     EDUARDO Masculino     39   CROSSFIT
## 6        LUIS Masculino     23   CROSSFIT
## 7       AURON  Femenino     39   NATACIÓN
## 8       MARIA Masculino     15 BASQUETBOL
## 9       DIEGO  Femenino     27  AMERICANO
## 10  ALEJANDRO  Femenino     45     FUTBOL
## 11      AURON  Femenino     40     KARATE
## 12      LUISA Masculino     26      TENIS
## 13  ALEJANDRA  Femenino     58    AJEDREZ
## 14       PEPE Masculino     43  ATLETISMO
## 15      MARIA  Femenino     21   NATACIÓN
## 16       ALAN Masculino     24      TENIS
## 17       LUIS  Femenino     57      TENIS
## 18  ALEJANDRO  Femenino     33   NATACIÓN
## 19  VIRIDIANA Masculino     44    BEISBOL
## 20      DIEGO  Femenino     25      TENIS
## 21      DIANA Masculino     48  AMERICANO
## 22      DIANA Masculino     39        BOX
## 23      MARIA Masculino     30     KARATE
## 24      DIANA Masculino     51    BEISBOL
## 25      DIANA  Femenino     34   NATACIÓN
## 26  GUILLERMO  Femenino     21     KARATE
## 27       MEMO Masculino     56    BEISBOL
## 28      PAOLA  Femenino     37     KARATE
## 29      DIANA Masculino     33  AMERICANO
## 30      DIEGO Masculino     28   NATACIÓN
## 31      DIANA  Femenino     58  AMERICANO
## 32       ALAN Masculino     40    AJEDREZ
## 33      AURON  Femenino     15 BASQUETBOL
## 34  VIRIDIANA  Femenino     25    BEISBOL
## 35  VIRIDIANA  Femenino     25    AJEDREZ
## 36       ALAN  Femenino     44   NATACIÓN
## 37       PEPE Masculino     18     KARATE
## 38      JORGE  Femenino     55    AJEDREZ
## 39      DIANA  Femenino     48    AJEDREZ
## 40       LUIS Masculino     54        BOX
## 41    ENRIQUE  Femenino     53     KARATE
## 42    EDUARDO Masculino     21  ATLETISMO
## 43      DIEGO Masculino     37      TENIS
## 44      MARIA Masculino     15    AJEDREZ
## 45      AURON  Femenino     41        BOX
## 46  VIRIDIANA  Femenino     45  AMERICANO
## 47     PAMELA  Femenino     60        BOX
## 48      LUISA  Femenino     21     KARATE
## 49      RICHI  Femenino     34   CROSSFIT
## 50      DIEGO  Femenino     29  ATLETISMO
## 51      JORGE Masculino     26     FUTBOL
## 52       ALAN Masculino     49     KARATE
## 53       PEPE Masculino     42 BASQUETBOL
## 54      MARIA  Femenino     32      TENIS
## 55     PAMELA Masculino     29     FUTBOL
## 56       LUIS  Femenino     50   NATACIÓN
## 57       ALAN Masculino     31 BASQUETBOL
## 58      MARIA  Femenino     41     KARATE
## 59      DIANA Masculino     30   CROSSFIT
## 60  ALEJANDRO  Femenino     49     FUTBOL
## 61      DIEGO Masculino     57  ATLETISMO
## 62       MEMO Masculino     60      TENIS
## 63  ALEJANDRO Masculino     54     FUTBOL
## 64  VIRIDIANA Masculino     15      TENIS
## 65     CARLOS  Femenino     49 BASQUETBOL
## 66       LUIS Masculino     46     FUTBOL
## 67      DIANA  Femenino     30     FUTBOL
## 68      DIEGO  Femenino     26    BEISBOL
## 69  ALEJANDRA  Femenino     15    AJEDREZ
## 70      MARIA  Femenino     43        BOX
## 71      AURON Masculino     26  AMERICANO
## 72     PAMELA  Femenino     27      TENIS
## 73      LUISA  Femenino     57    BEISBOL
## 74  VIRIDIANA Masculino     36    AJEDREZ
## 75      AURON Masculino     53   NATACIÓN
## 76       LUIS Masculino     44  ATLETISMO
## 77      DIEGO  Femenino     47     FUTBOL
## 78    EDUARDO Masculino     19    BEISBOL
## 79      JORGE  Femenino     33    BEISBOL
## 80       MEMO  Femenino     16     KARATE
## 81  VIRIDIANA Masculino     29  AMERICANO
## 82    ENRIQUE  Femenino     29     FUTBOL
## 83      DIEGO Masculino     50 BASQUETBOL
## 84    EDUARDO Masculino     24   CROSSFIT
## 85      PAOLA Masculino     28  ATLETISMO
## 86       ALAN  Femenino     29  AMERICANO
## 87       MEMO Masculino     20  AMERICANO
## 88      PAOLA  Femenino     55   NATACIÓN
## 89      MARIA  Femenino     32     KARATE
## 90  ALEJANDRO  Femenino     58    AJEDREZ
## 91      MARIA Masculino     32  ATLETISMO
## 92       LUIS  Femenino     17   CROSSFIT
## 93    ENRIQUE  Femenino     43   CROSSFIT
## 94      AURON Masculino     31 BASQUETBOL
## 95     CARLOS Masculino     59  AMERICANO
## 96  GUILLERMO  Femenino     60        BOX
## 97     PAMELA  Femenino     47    BEISBOL
## 98      AURON Masculino     32    BEISBOL
## 99  VIRIDIANA  Femenino     34  AMERICANO
## 100 ALEJANDRO Masculino     30     FUTBOL

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 La fórmula de la frecuencia \[f = {ni / N}\]

#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       ALAN    6
## 2  ALEJANDRA    2
## 3  ALEJANDRO    6
## 4      AURON    9
## 5     CARLOS    2
## 6      DIANA    9
## 7      DIEGO    9
## 8    EDUARDO    5
## 9    ENRIQUE    3
## 10 GUILLERMO    2
## 11     JORGE    3
## 12      LUIS    7
## 13     LUISA    3
## 14     MARIA    9
## 15      MEMO    4
## 16    PAMELA    4
## 17     PAOLA    3
## 18      PEPE    3
## 19     RICHI    2
## 20 VIRIDIANA    9

B.Determinar frecuencia absoluta

C.Determinar frecuencia relativa

D.Determinar frecuencia porcentual

Total de elementos N

N <- nrow(personal)
N
## [1] 100

Determinar frecuencia absoluta

tabla_frec.nombres <- data.frame(transform(table(personal$nombres)))
names(tabla_frec.nombres) <- c("Nombres", "Frecuencia.Abso") 
tabla_frec.nombres
##      Nombres Frecuencia.Abso
## 1       ALAN               6
## 2  ALEJANDRA               2
## 3  ALEJANDRO               6
## 4      AURON               9
## 5     CARLOS               2
## 6      DIANA               9
## 7      DIEGO               9
## 8    EDUARDO               5
## 9    ENRIQUE               3
## 10 GUILLERMO               2
## 11     JORGE               3
## 12      LUIS               7
## 13     LUISA               3
## 14     MARIA               9
## 15      MEMO               4
## 16    PAMELA               4
## 17     PAOLA               3
## 18      PEPE               3
## 19     RICHI               2
## 20 VIRIDIANA               9

Determinar frecuencia relativa

Freq.relativa <- tabla_frec.nombres$Frecuencia / N

Freq.relativa
##  [1] 0.06 0.02 0.06 0.09 0.02 0.09 0.09 0.05 0.03 0.02 0.03 0.07 0.03 0.09 0.04
## [16] 0.04 0.03 0.03 0.02 0.09

Determinar frecuencia porcentual

Freq.Porcentual <- Freq.relativa * 100
Freq.Porcentual
##  [1] 6 2 6 9 2 9 9 5 3 2 3 7 3 9 4 4 3 3 2 9

Construyendo la tabla de distribución

tabla_frec.nombres <- cbind(tabla_frec.nombres, Freq.relativa, Freq.Porcentual)

tabla_frec.nombres
##      Nombres Frecuencia.Abso Freq.relativa Freq.Porcentual
## 1       ALAN               6          0.06               6
## 2  ALEJANDRA               2          0.02               2
## 3  ALEJANDRO               6          0.06               6
## 4      AURON               9          0.09               9
## 5     CARLOS               2          0.02               2
## 6      DIANA               9          0.09               9
## 7      DIEGO               9          0.09               9
## 8    EDUARDO               5          0.05               5
## 9    ENRIQUE               3          0.03               3
## 10 GUILLERMO               2          0.02               2
## 11     JORGE               3          0.03               3
## 12      LUIS               7          0.07               7
## 13     LUISA               3          0.03               3
## 14     MARIA               9          0.09               9
## 15      MEMO               4          0.04               4
## 16    PAMELA               4          0.04               4
## 17     PAOLA               3          0.03               3
## 18      PEPE               3          0.03               3
## 19     RICHI               2          0.02               2
## 20 VIRIDIANA               9          0.09               9

4. Crear tabla de frecuencias con fdt_cat() de la variable nombres

Determinar frecuencia absoluta Determinar frecuencia relativa Determinar frecuencia porcentual Determinar frecuencia acomulada *Determinar frecuencia porcentual acomulada

tabla_frec.nombres.2 <- data.frame(fdt_cat(personal$nombres))
names(tabla_frec.nombres.2) <- c("nombres", "Freq Abso.", "Freq Rela.", "Freq Porce.", "Freq Acum.", "Freq Porce.Acum")
tabla_frec.nombres.2
##      nombres Freq Abso. Freq Rela. Freq Porce. Freq Acum. Freq Porce.Acum
## 1      AURON          9       0.09           9          9               9
## 2      DIANA          9       0.09           9         18              18
## 3      DIEGO          9       0.09           9         27              27
## 4      MARIA          9       0.09           9         36              36
## 5  VIRIDIANA          9       0.09           9         45              45
## 6       LUIS          7       0.07           7         52              52
## 7       ALAN          6       0.06           6         58              58
## 8  ALEJANDRO          6       0.06           6         64              64
## 9    EDUARDO          5       0.05           5         69              69
## 10      MEMO          4       0.04           4         73              73
## 11    PAMELA          4       0.04           4         77              77
## 12   ENRIQUE          3       0.03           3         80              80
## 13     JORGE          3       0.03           3         83              83
## 14     LUISA          3       0.03           3         86              86
## 15     PAOLA          3       0.03           3         89              89
## 16      PEPE          3       0.03           3         92              92
## 17 ALEJANDRA          2       0.02           2         94              94
## 18    CARLOS          2       0.02           2         96              96
## 19 GUILLERMO          2       0.02           2         98              98
## 20     RICHI          2       0.02           2        100             100

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 fd_caten 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 ordenando de mayor a menor con respecto a la frecuencia

5. Visualizar tabla de frecuencias de nombres (barra).

barplot(height = tabla_frec.nombres$Frecuencia, 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)))
names(tabla.frec.edades) <- c("edades", "Frecuencia")

barplot(height = tabla.frec.edades$Frecuencia, names.arg = tabla.frec.edades$edades,main = "Frecuencias de Edades",xlab = "Edades", ylab = "Frecuencias")

8. Crear tabla de frecuencias con fdt() de la variable edades.

*Determinar frecuencia absoluta, frecuencia relativa, frecuencia porcentual, frecuencia acumulada, y 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', 'Frecuencia', 'Frecuencia.Rela', 'Frecuencia.Porce', 'Frecuencia.Acum', 'Frecuencia.Porce.Acumu') 
tabla.frec.edades_2
##          clases Frecuencia Frecuencia.Rela Frecuencia.Porce Frecuencia.Acum
## 1 [14.85,20.57)         11            0.11               11              11
## 2 [20.57,26.29)         14            0.14               14              25
## 3 [26.29,32.01)         19            0.19               19              44
## 4 [32.01,37.73)          9            0.09                9              53
## 5 [37.73,43.44)         11            0.11               11              64
## 6 [43.44,49.16)         15            0.15               15              79
## 7 [49.16,54.88)          8            0.08                8              87
## 8  [54.88,60.6)         13            0.13               13             100
##   Frecuencia.Porce.Acumu
## 1                     11
## 2                     25
## 3                     44
## 4                     53
## 5                     64
## 6                     79
## 7                     87
## 8                    100

9. Visualizar tabla de frecuencias de edades (Barra).

*Gráfica de frecuencias de tabla.frec.edades_2.

barplot(height = tabla.frec.edades_2$Frecuencia, 
        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.

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', 'Frecuencia', 'Frecuencia.Rela', 'Frecuencia.Porce', 'Frecuencia.Acum', 'Frecuencia.Porce.Acum')
tabla_frec.genero
##     generos Frecuencia Frecuencia.Rela Frecuencia.Porce Frecuencia.Acum
## 1  Femenino         53            0.53               53              53
## 2 Masculino         47            0.47               47             100
##   Frecuencia.Porce.Acum
## 1                    53
## 2                   100

11. Visualizar tabla de frecuencias de generos (Barra).

barplot(height = tabla_frec.genero$Frecuencia, 
        names.arg = tabla_frec.genero$generos,
        main = "Frecuencias de Géneros",
        xlab = "Géneros", ylab = "Frecuencias")

Gráfica de pastel.

pie(x = tabla_frec.genero$Frecuencia, 
    labels = tabla_frec.genero$generos,
    col = c(120,100))

#### 12. 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', 'Frecuencia', 'Frecuencia.Rela', 'Frecuencia.Porce', 'Frecuencia.Acum', 'Frecuencia.Porce.Acum')
tabla_frec.deporte
##      deportes Frecuencia Frecuencia.Rela Frecuencia.Porce Frecuencia.Acum
## 1      KARATE         13            0.13               13              13
## 2   AMERICANO         11            0.11               11              24
## 3     BEISBOL         11            0.11               11              35
## 4      FUTBOL         10            0.10               10              45
## 5     AJEDREZ          9            0.09                9              54
## 6    NATACIÓN          9            0.09                9              63
## 7       TENIS          9            0.09                9              72
## 8    CROSSFIT          8            0.08                8              80
## 9   ATLETISMO          7            0.07                7              87
## 10 BASQUETBOL          7            0.07                7              94
## 11        BOX          6            0.06                6             100
##    Frecuencia.Porce.Acum
## 1                     13
## 2                     24
## 3                     35
## 4                     45
## 5                     54
## 6                     63
## 7                     72
## 8                     80
## 9                     87
## 10                    94
## 11                   100

13.Visualizar tabla de frecuencias de deportes (Barra).

barplot(height = tabla_frec.deporte$Frecuencia, 
        names.arg = tabla_frec.deporte$deportes,
        main = "Frecuencias de deportes",
        xlab = "Deportes", ylab = "Frecuencias")

Gráfica de deportes:

pie(x = tabla_frec.deporte$Frecuencia, 
    labels = tabla_frec.deporte$deportes,
    col = rainbow(length(tabla_frec.deporte$deportes)))

14.Describir el caso. Por medio de 80 a 100 palabras describir el CASO 2.

Descripción:

con los datos dados los cuales son nombres , genero (sexo), edad y el deporte favorito realizado por persona. primero se crean 1oo nombres , el genero , edad y deporte favorito despues se crean tabla de frecuencia con los nombres con table y fdt_cat se realizan diferentes graficas. En la gráfica de frecuencias de edades nos podemos dar cuenta cual es el porcentaje de la edad que es mayor o más frecuente de estas mismas personas