Emmanuel Antonio Castañeda Olvera
23/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("EMMANUEL",'LUDIVINA','JUAN','JORGE','ADOLFO','ALEXIS','DANIEL','LAURO','ANTONIO','DAVID')
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      DAVID Masculino   21           BOXEO
## 2   EMMANUEL  Femenino   15          FUTBOL
## 3      JORGE Masculino   46          JOCKEY
## 4     ALEXIS  Femenino   44 FUTBOLAMERICANO
## 5      JORGE Masculino   16     BASQUETBALL
## 6       JUAN  Femenino   30        NATACION
## 7   LUDIVINA Masculino   34          FUTBOL
## 8      JORGE Masculino   60 FUTBOLAMERICANO
## 9     ADOLFO  Femenino   30        CICLISMO
## 10     JORGE  Femenino   28           BOXEO
## 11     DAVID  Femenino   59          FUTBOL
## 12     DAVID  Femenino   21       BALONMANO
## 13    ADOLFO Masculino   32          FUTBOL
## 14    ADOLFO  Femenino   20          FUTBOL
## 15   ANTONIO Masculino   35          FUTBOL
## 16     JORGE Masculino   54       WATERPOLO
## 17    ADOLFO  Femenino   52       WATERPOLO
## 18    ALEXIS  Femenino   51        CICLISMO
## 19     JORGE  Femenino   54       WATERPOLO
## 20   ANTONIO  Femenino   20       WATERPOLO
## 21  EMMANUEL Masculino   48         ESGRIMA
## 22      JUAN  Femenino   44       WATERPOLO
## 23    ADOLFO  Femenino   58           BOXEO
## 24    DANIEL Masculino   39       WATERPOLO
## 25    DANIEL Masculino   50        CICLISMO
## 26   ANTONIO  Femenino   33        NATACION
## 27   ANTONIO  Femenino   53       BALONMANO
## 28     LAURO Masculino   27          FUTBOL
## 29    ADOLFO  Femenino   59        CICLISMO
## 30     DAVID  Femenino   50 FUTBOLAMERICANO
## 31  LUDIVINA  Femenino   18     BASQUETBALL
## 32   ANTONIO  Femenino   18     BASQUETBALL
## 33     JORGE Masculino   50       WATERPOLO
## 34     DAVID  Femenino   48         ESGRIMA
## 35   ANTONIO Masculino   40          JOCKEY
## 36   ANTONIO  Femenino   60          FUTBOL
## 37   ANTONIO  Femenino   26       BALONMANO
## 38     JORGE Masculino   46        NATACION
## 39      JUAN Masculino   44         ESGRIMA
## 40    DANIEL Masculino   42        NATACION
## 41   ANTONIO  Femenino   39          FUTBOL
## 42   ANTONIO  Femenino   56       WATERPOLO
## 43     DAVID Masculino   48       BALONMANO
## 44     DAVID Masculino   39        CICLISMO
## 45      JUAN Masculino   30           BOXEO
## 46     JORGE Masculino   50          JOCKEY
## 47     LAURO  Femenino   34       BALONMANO
## 48    ALEXIS  Femenino   59       WATERPOLO
## 49     DAVID  Femenino   45       BALONMANO
## 50    ADOLFO Masculino   43     BASQUETBALL
## 51   ANTONIO  Femenino   44        NATACION
## 52    ALEXIS  Femenino   60 FUTBOLAMERICANO
## 53  LUDIVINA Masculino   60       BALONMANO
## 54  EMMANUEL  Femenino   28 FUTBOLAMERICANO
## 55      JUAN  Femenino   32        NATACION
## 56    ADOLFO Masculino   23        NATACION
## 57  LUDIVINA  Femenino   43        NATACION
## 58   ANTONIO Masculino   16          JOCKEY
## 59  LUDIVINA Masculino   50          JOCKEY
## 60     LAURO Masculino   24        NATACION
## 61     JORGE Masculino   18 FUTBOLAMERICANO
## 62   ANTONIO Masculino   56       BALONMANO
## 63      JUAN Masculino   31       BALONMANO
## 64     LAURO  Femenino   32     BASQUETBALL
## 65   ANTONIO Masculino   37       BALONMANO
## 66    ALEXIS Masculino   21         ESGRIMA
## 67    ADOLFO Masculino   41        CICLISMO
## 68    DANIEL  Femenino   16        CICLISMO
## 69   ANTONIO Masculino   59        NATACION
## 70     DAVID Masculino   20          FUTBOL
## 71    ADOLFO  Femenino   28       WATERPOLO
## 72  EMMANUEL Masculino   49     BASQUETBALL
## 73     LAURO Masculino   20          JOCKEY
## 74      JUAN  Femenino   54     BASQUETBALL
## 75  LUDIVINA Masculino   40       BALONMANO
## 76    DANIEL Masculino   51       WATERPOLO
## 77    DANIEL  Femenino   33       BALONMANO
## 78     DAVID Masculino   43 FUTBOLAMERICANO
## 79     LAURO Masculino   43         ESGRIMA
## 80     LAURO  Femenino   60     BASQUETBALL
## 81     LAURO Masculino   55         ESGRIMA
## 82     LAURO Masculino   30           BOXEO
## 83    DANIEL Masculino   57       BALONMANO
## 84    DANIEL Masculino   24       WATERPOLO
## 85     DAVID  Femenino   42           BOXEO
## 86  LUDIVINA Masculino   60           BOXEO
## 87     DAVID  Femenino   43       BALONMANO
## 88     JORGE  Femenino   43           BOXEO
## 89      JUAN  Femenino   40 FUTBOLAMERICANO
## 90    DANIEL  Femenino   37 FUTBOLAMERICANO
## 91     DAVID  Femenino   17 FUTBOLAMERICANO
## 92    ADOLFO  Femenino   17          JOCKEY
## 93   ANTONIO Masculino   37          JOCKEY
## 94    ADOLFO  Femenino   37 FUTBOLAMERICANO
## 95     DAVID Masculino   33         ESGRIMA
## 96    ADOLFO  Femenino   48          JOCKEY
## 97     JORGE Masculino   55         ESGRIMA
## 98     LAURO Masculino   28         ESGRIMA
## 99    ALEXIS  Femenino   35     BASQUETBALL
## 100   ADOLFO  Femenino   32       BALONMANO

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         14
## 2    ALEXIS          6
## 3   ANTONIO         16
## 4    DANIEL          9
## 5     DAVID         14
## 6  EMMANUEL          4
## 7     JORGE         12
## 8      JUAN          8
## 9     LAURO         10
## 10 LUDIVINA          7

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   ANTONIO   16   0.16     16        16            16
## 2    ADOLFO   14   0.14     14        30            30
## 3     DAVID   14   0.14     14        44            44
## 4     JORGE   12   0.12     12        56            56
## 5     LAURO   10   0.10     10        66            66
## 6    DANIEL    9   0.09      9        75            75
## 7      JUAN    8   0.08      8        83            83
## 8  LUDIVINA    7   0.07      7        90            90
## 9    ALEXIS    6   0.06      6        96            96
## 10 EMMANUEL    4   0.04      4       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      16    3
## 3      17    2
## 4      18    3
## 5      20    4
## 6      21    3
## 7      23    1
## 8      24    2
## 9      26    1
## 10     27    1
## 11     28    4
## 12     30    4
## 13     31    1
## 14     32    4
## 15     33    3
## 16     34    2
## 17     35    2
## 18     37    4
## 19     39    3
## 20     40    3
## 21     41    1
## 22     42    2
## 23     43    6
## 24     44    4
## 25     45    1
## 26     46    2
## 27     48    4
## 28     49    1
## 29     50    5
## 30     51    2
## 31     52    1
## 32     53    1
## 33     54    3
## 34     55    2
## 35     56    2
## 36     57    1
## 37     58    1
## 38     59    4
## 39     60    6
  • 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)   13   0.13     13        13            13
## 2 [20.57,26.29)    7   0.07      7        20            20
## 3 [26.29,32.01)   14   0.14     14        34            34
## 4 [32.01,37.73)   11   0.11     11        45            45
## 5 [37.73,43.44)   15   0.15     15        60            60
## 6 [43.44,49.16)   12   0.12     12        72            72
## 7 [49.16,54.88)   12   0.12     12        84            84
## 8  [54.88,60.6)   16   0.16     16       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  Femenino   50    0.5     50        50            50
## 2 Masculino   50    0.5     50       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        BALONMANO   15   0.15     15        15            15
## 2        WATERPOLO   12   0.12     12        27            27
## 3  FUTBOLAMERICANO   11   0.11     11        38            38
## 4           FUTBOL   10   0.10     10        48            48
## 5         NATACION   10   0.10     10        58            58
## 6      BASQUETBALL    9   0.09      9        67            67
## 7          ESGRIMA    9   0.09      9        76            76
## 8           JOCKEY    9   0.09      9        85            85
## 9            BOXEO    8   0.08      8        93            93
## 10        CICLISMO    7   0.07      7       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

Las diferentes funciones que utilizamos en este caso fueron de gran utilidad a la hora de crear datos que queremos ver, por ejemplo, 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.