Caso 3. Tablas de Frecuencias

Objetivo

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

1. Cargar librerías fdth

library(fdth)
## 
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
## 
##     sd, var

2. Crear conjunto de datos llamado personas

set.seed(2020)
-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
listanombres <- c("ARTURO", 'FELIPE', 'OMAR', 'EDUARDO', 'ISMAEL',
                "PATRICIA", 'ALICIA', 'EDGAR', 'LEONARDO', 'SOFIA', 'LETICIA', 'NATALIA', 'JAZMIN', 'ERNESTO', 'SAHARA', 'MANUEL', 'JESUS', 'MARIBEL', 'ROSARIO', 'DANIELA')

nombres <- sample(listanombres, 100, replace = TRUE)

generos <- sample(c('Femenino', 'Masculino'), 100, replace = TRUE)
                 
edades <- sample(15:60, 100, replace = TRUE)

listadeportes <- c("FUTBOL", 'BASEBALL', 'CICLISMO', 'BASQUETBOL', 'ATLETISMO', 
                 'NATACION', 'VOLEIBOL', 'BEISBOL', 'FUTBOL AMERICANO', 'RUGBY')
deportes <- sample(listadeportes, 100, replace = TRUE)

datos <- data.frame(nombres, generos, edades, deportes)
datos
##      nombres   generos edades         deportes
## 1    NATALIA  Femenino     15         VOLEIBOL
## 2     ARTURO Masculino     53         NATACION
## 3      JESUS  Femenino     58           FUTBOL
## 4    EDUARDO  Femenino     58         NATACION
## 5      SOFIA  Femenino     36 FUTBOL AMERICANO
## 6   PATRICIA Masculino     26         BASEBALL
## 7      JESUS Masculino     26         VOLEIBOL
## 8     JAZMIN Masculino     24         VOLEIBOL
## 9      EDGAR  Femenino     27            RUGBY
## 10     SOFIA Masculino     41         NATACION
## 11   MARIBEL  Femenino     59         NATACION
## 12    MANUEL Masculino     56            RUGBY
## 13    FELIPE Masculino     55       BASQUETBOL
## 14    MANUEL Masculino     58         VOLEIBOL
## 15      OMAR Masculino     43            RUGBY
## 16    FELIPE Masculino     39            RUGBY
## 17     EDGAR  Femenino     33       BASQUETBOL
## 18   EDUARDO  Femenino     16         CICLISMO
## 19   MARIBEL  Femenino     58            RUGBY
## 20   ERNESTO Masculino     18         BASEBALL
## 21   ERNESTO  Femenino     25         VOLEIBOL
## 22   NATALIA  Femenino     33       BASQUETBOL
## 23    MANUEL  Femenino     43         VOLEIBOL
## 24    SAHARA  Femenino     55         BASEBALL
## 25   ERNESTO  Femenino     16         VOLEIBOL
## 26    ALICIA  Femenino     34          BEISBOL
## 27   DANIELA  Femenino     21         VOLEIBOL
## 28   MARIBEL Masculino     22         BASEBALL
## 29   DANIELA Masculino     28          BEISBOL
## 30   DANIELA  Femenino     58       BASQUETBOL
## 31    MANUEL Masculino     39 FUTBOL AMERICANO
## 32   NATALIA  Femenino     50            RUGBY
## 33   MARIBEL Masculino     37           FUTBOL
## 34     SOFIA  Femenino     24         CICLISMO
## 35  PATRICIA  Femenino     27         NATACION
## 36    SAHARA Masculino     41        ATLETISMO
## 37   LETICIA  Femenino     49         NATACION
## 38    JAZMIN  Femenino     41          BEISBOL
## 39    JAZMIN  Femenino     41         CICLISMO
## 40    JAZMIN Masculino     34          BEISBOL
## 41    FELIPE  Femenino     37        ATLETISMO
## 42    MANUEL  Femenino     21         CICLISMO
## 43    JAZMIN  Femenino     42        ATLETISMO
## 44    ARTURO  Femenino     19         NATACION
## 45  PATRICIA Masculino     41        ATLETISMO
## 46      OMAR Masculino     53          BEISBOL
## 47    JAZMIN  Femenino     36         NATACION
## 48   LETICIA Masculino     35 FUTBOL AMERICANO
## 49    ISMAEL  Femenino     39       BASQUETBOL
## 50   LETICIA  Femenino     59         NATACION
## 51  PATRICIA  Femenino     40         CICLISMO
## 52    FELIPE Masculino     30         CICLISMO
## 53      OMAR Masculino     33         NATACION
## 54   MARIBEL  Femenino     46         VOLEIBOL
## 55    ARTURO  Femenino     40 FUTBOL AMERICANO
## 56    ALICIA Masculino     56        ATLETISMO
## 57     EDGAR Masculino     50            RUGBY
## 58    JAZMIN Masculino     50           FUTBOL
## 59    FELIPE  Femenino     23         BASEBALL
## 60    ISMAEL  Femenino     42         BASEBALL
## 61   EDUARDO Masculino     15        ATLETISMO
## 62   ROSARIO Masculino     59          BEISBOL
## 63    MANUEL  Femenino     56         CICLISMO
## 64   EDUARDO  Femenino     48          BEISBOL
## 65   DANIELA Masculino     59        ATLETISMO
## 66   MARIBEL Masculino     20        ATLETISMO
## 67     SOFIA  Femenino     55        ATLETISMO
## 68    ARTURO  Femenino     38        ATLETISMO
## 69    SAHARA Masculino     17           FUTBOL
## 70  LEONARDO Masculino     40        ATLETISMO
## 71    MANUEL Masculino     52            RUGBY
## 72  PATRICIA Masculino     48         NATACION
## 73     SOFIA Masculino     48         CICLISMO
## 74    ARTURO  Femenino     18         NATACION
## 75    ARTURO Masculino     54           FUTBOL
## 76     JESUS  Femenino     23          BEISBOL
## 77     EDGAR  Femenino     57         VOLEIBOL
## 78    SAHARA Masculino     24         CICLISMO
## 79   NATALIA  Femenino     57            RUGBY
## 80   MARIBEL  Femenino     56       BASQUETBOL
## 81    JAZMIN  Femenino     26       BASQUETBOL
## 82    ISMAEL Masculino     55         CICLISMO
## 83    MANUEL  Femenino     44       BASQUETBOL
## 84   DANIELA Masculino     46           FUTBOL
## 85   DANIELA  Femenino     45           FUTBOL
## 86   DANIELA  Femenino     52         VOLEIBOL
## 87   ERNESTO Masculino     41          BEISBOL
## 88    JAZMIN  Femenino     25       BASQUETBOL
## 89     JESUS  Femenino     46        ATLETISMO
## 90    JAZMIN  Femenino     16         CICLISMO
## 91    ALICIA Masculino     25 FUTBOL AMERICANO
## 92  LEONARDO  Femenino     15       BASQUETBOL
## 93     EDGAR Masculino     28         CICLISMO
## 94      OMAR  Femenino     21            RUGBY
## 95      OMAR Masculino     33         CICLISMO
## 96    FELIPE  Femenino     20        ATLETISMO
## 97    JAZMIN Masculino     44         CICLISMO
## 98     EDGAR Masculino     31         CICLISMO
## 99   EDUARDO Masculino     59        ATLETISMO
## 100   ALICIA  Femenino     24         CICLISMO

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

tabla_frec.nombres <- data.frame(transform(table(datos$nombres)))
names(tabla_frec.nombres) <- c('nombres', 'freq') 
tabla_frec.nombres
##     nombres freq
## 1    ALICIA    4
## 2    ARTURO    6
## 3   DANIELA    7
## 4     EDGAR    6
## 5   EDUARDO    5
## 6   ERNESTO    4
## 7    FELIPE    6
## 8    ISMAEL    3
## 9    JAZMIN   11
## 10    JESUS    4
## 11 LEONARDO    2
## 12  LETICIA    3
## 13   MANUEL    8
## 14  MARIBEL    7
## 15  NATALIA    4
## 16     OMAR    5
## 17 PATRICIA    5
## 18  ROSARIO    1
## 19   SAHARA    4
## 20    SOFIA    5
Total de elementos N
N <- nrow(datos)
N
## [1] 100
Determinar frecuencia relativa
freq.r <- tabla_frec.nombres$freq / N
freq.r
##  [1] 0.04 0.06 0.07 0.06 0.05 0.04 0.06 0.03 0.11 0.04 0.02 0.03 0.08 0.07 0.04
## [16] 0.05 0.05 0.01 0.04 0.05
Determinar frecuencia porcentual
freq.p <- freq.r * 100
freq.p
##  [1]  4  6  7  6  5  4  6  3 11  4  2  3  8  7  4  5  5  1  4  5
Construir tabla de distribución
tabla_frec.nombres <- cbind(tabla_frec.nombres, freq.r, freq.p)
tabla_frec.nombres
##     nombres freq freq.r freq.p
## 1    ALICIA    4   0.04      4
## 2    ARTURO    6   0.06      6
## 3   DANIELA    7   0.07      7
## 4     EDGAR    6   0.06      6
## 5   EDUARDO    5   0.05      5
## 6   ERNESTO    4   0.04      4
## 7    FELIPE    6   0.06      6
## 8    ISMAEL    3   0.03      3
## 9    JAZMIN   11   0.11     11
## 10    JESUS    4   0.04      4
## 11 LEONARDO    2   0.02      2
## 12  LETICIA    3   0.03      3
## 13   MANUEL    8   0.08      8
## 14  MARIBEL    7   0.07      7
## 15  NATALIA    4   0.04      4
## 16     OMAR    5   0.05      5
## 17 PATRICIA    5   0.05      5
## 18  ROSARIO    1   0.01      1
## 19   SAHARA    4   0.04      4
## 20    SOFIA    5   0.05      5

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

tabla_frec.nombres.2 <- data.frame(fdt_cat(datos$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    JAZMIN   11   0.11     11        11            11
## 2    MANUEL    8   0.08      8        19            19
## 3   DANIELA    7   0.07      7        26            26
## 4   MARIBEL    7   0.07      7        33            33
## 5    ARTURO    6   0.06      6        39            39
## 6     EDGAR    6   0.06      6        45            45
## 7    FELIPE    6   0.06      6        51            51
## 8   EDUARDO    5   0.05      5        56            56
## 9      OMAR    5   0.05      5        61            61
## 10 PATRICIA    5   0.05      5        66            66
## 11    SOFIA    5   0.05      5        71            71
## 12   ALICIA    4   0.04      4        75            75
## 13  ERNESTO    4   0.04      4        79            79
## 14    JESUS    4   0.04      4        83            83
## 15  NATALIA    4   0.04      4        87            87
## 16   SAHARA    4   0.04      4        91            91
## 17   ISMAEL    3   0.03      3        94            94
## 18  LETICIA    3   0.03      3        97            97
## 19 LEONARDO    2   0.02      2        99            99
## 20  ROSARIO    1   0.01      1       100           100

5. Visualizar 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(datos$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(datos$edades)))
names(tabla.frec.edades) <- c("edades", "freq")
tabla.frec.edades
##    edades freq
## 1      15    3
## 2      16    3
## 3      17    1
## 4      18    2
## 5      19    1
## 6      20    2
## 7      21    3
## 8      22    1
## 9      23    2
## 10     24    4
## 11     25    3
## 12     26    3
## 13     27    2
## 14     28    2
## 15     30    1
## 16     31    1
## 17     33    4
## 18     34    2
## 19     35    1
## 20     36    2
## 21     37    2
## 22     38    1
## 23     39    3
## 24     40    3
## 25     41    6
## 26     42    2
## 27     43    2
## 28     44    2
## 29     45    1
## 30     46    3
## 31     48    3
## 32     49    1
## 33     50    3
## 34     52    2
## 35     53    2
## 36     54    1
## 37     55    4
## 38     56    4
## 39     57    2
## 40     58    5
## 41     59    5
Gráfica de frecuencias de tabla_frec.edades
barplot(height = tabla.frec.edades$freq, 
        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

tabla.frec.edades_2 <- fdt(datos$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)   12   0.12     12        12            12
## 2 [20.442,26.035)   16   0.16     16        28            28
## 3 [26.035,31.627)    6   0.06      6        34            34
## 4  [31.627,37.22)   11   0.11     11        45            45
## 5  [37.22,42.812)   15   0.15     15        60            60
## 6 [42.812,48.405)   11   0.11     11        71            71
## 7 [48.405,53.998)    8   0.08      8        79            79
## 8  [53.998,59.59)   21   0.21     21       100           100

9. Visualizar tabla de frecuencias de edades.

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(datos$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   55   0.55     55        55            55
## 2 Masculino   45   0.45     45       100           100

11. 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(datos$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          CICLISMO   16   0.16     16        16            16
## 2         ATLETISMO   14   0.14     14        30            30
## 3          NATACION   12   0.12     12        42            42
## 4          VOLEIBOL   11   0.11     11        53            53
## 5        BASQUETBOL   10   0.10     10        63            63
## 6             RUGBY   10   0.10     10        73            73
## 7           BEISBOL    9   0.09      9        82            82
## 8            FUTBOL    7   0.07      7        89            89
## 9          BASEBALL    6   0.06      6        95            95
## 10 FUTBOL AMERICANO    5   0.05      5       100           100

13. 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.

R studio es una herramienta que facilita el generar tablas de distribucion y frecuencia asi como generar graficos(grafica de pastel, grafica de barra, etcetera) y esto ayuda bastante porque la organizacion de datos en tablas de distribucion y tablas de frecuencia ayuda bastante a identificar los datos significativos y a entender mejor los datos. Ademas podemos saber cual es la tendencia de esos datos, por ejemplo, de un grupo de personas, cual es su deporte favorito, o de los datos recopilados cual es el deporte favorito de un hombre o de una mujer, incluso podemos saber entre que rango de edad es mas famoso un deporte que otro.