Adolfo Moreno Hernández

24/SEP/20

CASO 2

Objetivo

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

Descripción

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

1. Cargar librerias fdth.

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

2. Crear un conjunto de datos llamado personas.

  • Crear 100 nombres a partir de 20 nombres.
  • Crear genero aleatorio entre Masculino y Femenino.
  • Crear la edad aleatoria entre 15 y 60.
  • Crear el deporte favorito de cada persona aleatorio entre 10.
Pnombres <- c("ADOLFO",'GUILLERMO','EMMANUEL','JORGE','ALONSO','ALEXIS','DAVID','LAURA','ANTONIETA','GUSTAVO')
Nombre <- sample(Pnombres, 100, replace = TRUE)
Genero <- sample(c('Masculino', 'Femenino'), 100, replace = TRUE)
Edad <- sample(15:60, 100, replace = TRUE)
Edeportes <- c("FUTBOL",'FUTBOLAMERICANO', 'JOCKEY','BASQUETBALL','BALONMANO','BOXEO','NATACION','WATERPOLO','ESGRIMA','CICLISMO')
Deportes <- sample(Edeportes, 100, replace = TRUE)
personas <- data.frame(Nombre, Genero, Edad, Deportes)
personas
##        Nombre    Genero Edad        Deportes
## 1      ALEXIS Masculino   59        CICLISMO
## 2     GUSTAVO Masculino   59          JOCKEY
## 3    EMMANUEL  Femenino   21       WATERPOLO
## 4      ALONSO  Femenino   26         ESGRIMA
## 5   ANTONIETA  Femenino   25          JOCKEY
## 6     GUSTAVO Masculino   30          JOCKEY
## 7      ADOLFO Masculino   35        NATACION
## 8   ANTONIETA  Femenino   50        NATACION
## 9      ALONSO Masculino   22        CICLISMO
## 10  GUILLERMO  Femenino   35       BALONMANO
## 11      LAURA Masculino   33          FUTBOL
## 12      LAURA  Femenino   47          FUTBOL
## 13      JORGE  Femenino   51         ESGRIMA
## 14    GUSTAVO Masculino   42          JOCKEY
## 15     ALEXIS Masculino   28        CICLISMO
## 16     ADOLFO Masculino   27        CICLISMO
## 17    GUSTAVO Masculino   52       BALONMANO
## 18     ALEXIS Masculino   59          FUTBOL
## 19      JORGE Masculino   15        CICLISMO
## 20   EMMANUEL Masculino   19        NATACION
## 21     ADOLFO  Femenino   17 FUTBOLAMERICANO
## 22     ADOLFO Masculino   31       WATERPOLO
## 23      JORGE Masculino   26          JOCKEY
## 24     ALEXIS  Femenino   34           BOXEO
## 25     ALONSO Masculino   38           BOXEO
## 26     ALEXIS Masculino   47 FUTBOLAMERICANO
## 27      DAVID  Femenino   43        NATACION
## 28  ANTONIETA  Femenino   41     BASQUETBALL
## 29      JORGE  Femenino   26        NATACION
## 30     ALONSO Masculino   43       WATERPOLO
## 31  ANTONIETA Masculino   48         ESGRIMA
## 32      JORGE  Femenino   33        CICLISMO
## 33      JORGE Masculino   17           BOXEO
## 34      JORGE  Femenino   56       BALONMANO
## 35  ANTONIETA Masculino   27 FUTBOLAMERICANO
## 36     ALONSO Masculino   40        CICLISMO
## 37   EMMANUEL Masculino   46        CICLISMO
## 38     ADOLFO Masculino   46         ESGRIMA
## 39  GUILLERMO  Femenino   31           BOXEO
## 40     ALEXIS  Femenino   20       BALONMANO
## 41    GUSTAVO  Femenino   28        CICLISMO
## 42  ANTONIETA Masculino   51           BOXEO
## 43  GUILLERMO Masculino   48         ESGRIMA
## 44    GUSTAVO Masculino   19        CICLISMO
## 45     ALONSO Masculino   32        NATACION
## 46     ALEXIS  Femenino   50        NATACION
## 47      DAVID  Femenino   50 FUTBOLAMERICANO
## 48      JORGE Masculino   23          FUTBOL
## 49      DAVID Masculino   21        CICLISMO
## 50      JORGE  Femenino   23          JOCKEY
## 51      JORGE Masculino   41       WATERPOLO
## 52     ALONSO  Femenino   25           BOXEO
## 53      JORGE Masculino   59         ESGRIMA
## 54    GUSTAVO  Femenino   23          FUTBOL
## 55    GUSTAVO Masculino   31 FUTBOLAMERICANO
## 56      JORGE  Femenino   50       BALONMANO
## 57   EMMANUEL  Femenino   21           BOXEO
## 58      JORGE Masculino   51        CICLISMO
## 59     ALEXIS Masculino   26        NATACION
## 60  GUILLERMO Masculino   19         ESGRIMA
## 61      LAURA  Femenino   35         ESGRIMA
## 62     ADOLFO  Femenino   33       WATERPOLO
## 63  ANTONIETA Masculino   39        CICLISMO
## 64  GUILLERMO  Femenino   56       WATERPOLO
## 65     ALEXIS  Femenino   52           BOXEO
## 66   EMMANUEL  Femenino   23          FUTBOL
## 67    GUSTAVO Masculino   59       BALONMANO
## 68   EMMANUEL  Femenino   27        NATACION
## 69     ALONSO Masculino   30           BOXEO
## 70     ALEXIS  Femenino   57        CICLISMO
## 71      DAVID  Femenino   39           BOXEO
## 72   EMMANUEL Masculino   43       BALONMANO
## 73  ANTONIETA  Femenino   19       BALONMANO
## 74  GUILLERMO Masculino   54        CICLISMO
## 75      DAVID  Femenino   48         ESGRIMA
## 76  GUILLERMO Masculino   32           BOXEO
## 77    GUSTAVO  Femenino   60        NATACION
## 78  GUILLERMO Masculino   53           BOXEO
## 79      JORGE  Femenino   27     BASQUETBALL
## 80      DAVID Masculino   47        CICLISMO
## 81      DAVID  Femenino   44          FUTBOL
## 82     ALONSO  Femenino   59       BALONMANO
## 83     ADOLFO Masculino   36           BOXEO
## 84     ALEXIS  Femenino   42         ESGRIMA
## 85  ANTONIETA Masculino   33        NATACION
## 86      JORGE Masculino   45     BASQUETBALL
## 87    GUSTAVO  Femenino   46         ESGRIMA
## 88     ALONSO  Femenino   50         ESGRIMA
## 89      DAVID Masculino   42        CICLISMO
## 90      DAVID Masculino   58       BALONMANO
## 91   EMMANUEL  Femenino   34        CICLISMO
## 92     ADOLFO Masculino   55     BASQUETBALL
## 93     ALEXIS Masculino   27       WATERPOLO
## 94    GUSTAVO Masculino   47           BOXEO
## 95      JORGE  Femenino   49     BASQUETBALL
## 96  GUILLERMO  Femenino   37         ESGRIMA
## 97      LAURA Masculino   42         ESGRIMA
## 98      DAVID Masculino   29 FUTBOLAMERICANO
## 99      LAURA Masculino   58 FUTBOLAMERICANO
## 100    ALEXIS  Femenino   34        CICLISMO

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()) tranforma … significa renglones columnas
  • Con data.frame se construye un data.frame
  • con names() se modifica los nombres de variables de un data.frame
  • Determinar frecuencia absoluta
tabla_frec.Nombre <- data.frame(transform(table(personas$Nombre)))
names(tabla_frec.Nombre) <- c('Nombre', 'Frecuencia')
tabla_frec.Nombre
##       Nombre Frecuencia
## 1     ADOLFO          8
## 2     ALEXIS         13
## 3     ALONSO         10
## 4  ANTONIETA          9
## 5      DAVID         10
## 6   EMMANUEL          8
## 7  GUILLERMO          9
## 8    GUSTAVO         12
## 9      JORGE         16
## 10     LAURA          5

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

  • fdt_cat() es una función que genera la tabla de distribución
  • 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
tabla_frec.Nombre <- data.frame(fdt_cat(personas$Nombre))
names(tabla_frec.Nombre) <- c('nombres', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla_frec.Nombre
##      nombres freq freq.r freq.p freq.acum frec.por.acum
## 1      JORGE   16   0.16     16        16            16
## 2     ALEXIS   13   0.13     13        29            29
## 3    GUSTAVO   12   0.12     12        41            41
## 4     ALONSO   10   0.10     10        51            51
## 5      DAVID   10   0.10     10        61            61
## 6  ANTONIETA    9   0.09      9        70            70
## 7  GUILLERMO    9   0.09      9        79            79
## 8     ADOLFO    8   0.08      8        87            87
## 9   EMMANUEL    8   0.08      8        95            95
## 10     LAURA    5   0.05      5       100           100

5. Visualizar tabla de frecuencias de nombres

barplot(height = tabla_frec.Nombre$freq, names.arg = tabla_frec.Nombre$Nombre)

6. Visualizar un histograma de la variable edades

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

7. Crear tabla de frecuencias con table() de la variable edades

  • La función table() genera frecuencias
tabla.frec.Edad <- data.frame(transform(table(personas$Edad)))
# tabla.frecuencias.edades
names(tabla.frec.Edad) <- c("edades", "freq")
tabla.frec.Edad
##    edades freq
## 1      15    1
## 2      17    2
## 3      19    4
## 4      20    1
## 5      21    3
## 6      22    1
## 7      23    4
## 8      25    2
## 9      26    4
## 10     27    5
## 11     28    2
## 12     29    1
## 13     30    2
## 14     31    3
## 15     32    2
## 16     33    4
## 17     34    3
## 18     35    3
## 19     36    1
## 20     37    1
## 21     38    1
## 22     39    2
## 23     40    1
## 24     41    2
## 25     42    4
## 26     43    3
## 27     44    1
## 28     45    1
## 29     46    3
## 30     47    4
## 31     48    3
## 32     49    1
## 33     50    5
## 34     51    3
## 35     52    2
## 36     53    1
## 37     54    1
## 38     55    1
## 39     56    2
## 40     57    1
## 41     58    2
## 42     59    6
## 43     60    1
  • Gráfica de frecuencias de tabla_frec.edades
tabla.frec.Edad <- data.frame(transform(table(personas$Edad)))
names(tabla.frec.Edad) <- c("edades", "freq")
barplot(height = tabla.frec.Edad$freq, 
        names.arg = tabla.frec.Edad$Edad,
        main = "Frecuencias de edades",
        xlab = "Edades", ylab = "Frecuencias")

8. 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.Edad_2 <- fdt(personas$Edad)
tabla.frec.Edad_2 <- data.frame(tabla.frec.Edad_2$table)
names(tabla.frec.Edad_2) <- c('clases', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum') 
tabla.frec.Edad_2
##          clases freq freq.r freq.p freq.acum frec.por.acum
## 1 [14.85,20.57)    8   0.08      8         8             8
## 2 [20.57,26.29)   14   0.14     14        22            22
## 3 [26.29,32.01)   15   0.15     15        37            37
## 4 [32.01,37.73)   12   0.12     12        49            49
## 5 [37.73,43.44)   13   0.13     13        62            62
## 6 [43.44,49.16)   13   0.13     13        75            75
## 7 [49.16,54.88)   12   0.12     12        87            87
## 8  [54.88,60.6)   13   0.13     13       100           100

9. Visualizar tabla de frecuencias de edades (Barra)

  • Gráfica de frecuencias de tabla_frec.edades
barplot(height = tabla.frec.Edad_2$freq, 
        names.arg = tabla.frec.Edad_2$clases,
        main = "Frecuencias de Clases",
        xlab = "Clases de Edad", ylab = "Frecuencias")

### 10. Crear tabla de frecuencias con fdt_cat() de la variable genero Determinar frecuencia absoluta, frecuencia relativa, frecuencia porcentual, frecuencia acumulada, y frecuencia porcentual acumulada

tabla_frec.genero <- data.frame(fdt_cat(personas$Genero))
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 Masculino   55   0.55     55        55            55
## 2  Femenino   45   0.45     45       100           100

11. Visualizar tabla de frecuencias de generos

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

  • Grafica de pastel
pie(x = tabla_frec.genero$freq, 
    labels = tabla_frec.genero$genero,
    col = c(155,100))

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

  • Determinar frecuencia absoluta, frecuencia relativa, frecuencia porcentual, frecuencia acumulada, y frecuencia porcentual acumulada
tabla_frec.depo=data.frame(fdt_cat(personas$Deportes))
names(tabla_frec.depo)=c('deportes', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla_frec.depo
##           deportes freq freq.r freq.p freq.acum frec.por.acum
## 1         CICLISMO   19   0.19     19        19            19
## 2            BOXEO   14   0.14     14        33            33
## 3          ESGRIMA   14   0.14     14        47            47
## 4         NATACION   11   0.11     11        58            58
## 5        BALONMANO   10   0.10     10        68            68
## 6           FUTBOL    7   0.07      7        75            75
## 7  FUTBOLAMERICANO    7   0.07      7        82            82
## 8        WATERPOLO    7   0.07      7        89            89
## 9           JOCKEY    6   0.06      6        95            95
## 10     BASQUETBALL    5   0.05      5       100           100

13. Visualizar tabla de frecuencias de deportes (Barra)

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

  • Grafica de pastel
pie(x = tabla_frec.depo$freq, 
    labels = tabla_frec.depo$Deportes,
    col = rainbow(length(tabla_frec.depo$Deportes)))

14. Conclucion Caso 2

Muy interseante la práctica ya que nos permite automatizar la distribución de datos. La función sample() que nos permite crear un número determinado de valores ya sean numéricos o de texto. Cuando generábamos número aleatorios, con estos fuimos capases de crear tablas con esos datos ya sean de barra o circulares.