Caso 2. Tablas de frecuencias

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

Descripcion:

Crea un un conjunto de 100 registros con cuatro variables nombre, genero, edad y deporte favorito de cada persona. Una vez construido el conjunto de datos elabora last tablas de frecuencia de los nombres, generos(sexo), edades y deporte favorito de igual forma determinar la tabla de la frecuencia de las edades.

1. Cargar librerías fdth

La librería fdth permite generar tablas de frecuencias

{r warning=FALSE, message=FALSE}

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

2. Crear conjunto de datos llamado personas

*sembrar semilla

set.seed((1999)) # Año 1999, pueden poner el valor numérico a su gusto

Crear 100 nombres a partir de 20 nombres Crear aleatorio el genero entre masculino y femenino Crear la edad aleatorio entre 15 y 60 Crear el deporte favorito de cada persona aleatorio entre 10

losnombres<-c("Eduardo", 'Osvaldo', 'Oscar', 'LUIS', 'Erick',
                "Patricia", 'Monica', 'Daniel', 'Issac', 'Gabriela', 'Cassandra', 'Esmeralda', 'Andrea', 'Horacio', 'Karen', 'Gustavo', 'Edson', 'Sofia', 'Dafne', 'Monserrat')

nombre<- sample(losnombres, 100, replace = TRUE)
nombre
##   [1] "LUIS"      "LUIS"      "Sofia"     "Sofia"     "Sofia"     "Cassandra"
##   [7] "Monica"    "Andrea"    "Horacio"   "Gabriela"  "Gabriela"  "Monica"   
##  [13] "Esmeralda" "LUIS"      "Karen"     "Andrea"    "Esmeralda" "Osvaldo"  
##  [19] "LUIS"      "Dafne"     "Dafne"     "Daniel"    "Oscar"     "LUIS"     
##  [25] "Karen"     "Daniel"    "Edson"     "Edson"     "Esmeralda" "Gabriela" 
##  [31] "Sofia"     "Sofia"     "Osvaldo"   "LUIS"      "Osvaldo"   "Daniel"   
##  [37] "Andrea"    "Daniel"    "Monserrat" "Patricia"  "Gabriela"  "Daniel"   
##  [43] "Monica"    "Monserrat" "Osvaldo"   "Daniel"    "Daniel"    "Osvaldo"  
##  [49] "Osvaldo"   "Issac"     "Daniel"    "Sofia"     "Andrea"    "Daniel"   
##  [55] "Karen"     "Oscar"     "Karen"     "Osvaldo"   "Oscar"     "Monserrat"
##  [61] "Esmeralda" "Monserrat" "Sofia"     "Sofia"     "Patricia"  "Erick"    
##  [67] "Cassandra" "Oscar"     "Osvaldo"   "Edson"     "Issac"     "Osvaldo"  
##  [73] "Eduardo"   "Esmeralda" "Patricia"  "Osvaldo"   "Edson"     "Oscar"    
##  [79] "Karen"     "Erick"     "Issac"     "Cassandra" "Edson"     "Erick"    
##  [85] "Eduardo"   "Dafne"     "Monserrat" "Karen"     "Oscar"     "Horacio"  
##  [91] "Esmeralda" "Osvaldo"   "Horacio"   "Monica"    "Dafne"     "Karen"    
##  [97] "Gustavo"   "Dafne"     "Esmeralda" "Edson"
genero<- sample(c('Femenino', 'Masculino'), 100, replace = TRUE)

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

misdeportes <- c("FUTBOL", 'TENIS', 'Jockey', 'BASQUETBOL', 'ATLETISMO', 
                 'NATACION', 'KARATE', 'BEISBOL', 'FUTBOL AMERICANO', 'RUGBY')
deportes <- sample(misdeportes, 100, replace = TRUE)

personal<- data.frame(nombre, genero, edades, deportes)
personal
##        nombre    genero edades         deportes
## 1        LUIS Masculino     48           FUTBOL
## 2        LUIS Masculino     35           FUTBOL
## 3       Sofia Masculino     40       BASQUETBOL
## 4       Sofia  Femenino     31           FUTBOL
## 5       Sofia Masculino     44         NATACION
## 6   Cassandra  Femenino     26           KARATE
## 7      Monica Masculino     38           Jockey
## 8      Andrea  Femenino     22        ATLETISMO
## 9     Horacio Masculino     22 FUTBOL AMERICANO
## 10   Gabriela Masculino     26       BASQUETBOL
## 11   Gabriela  Femenino     35       BASQUETBOL
## 12     Monica Masculino     23            TENIS
## 13  Esmeralda  Femenino     60          BEISBOL
## 14       LUIS  Femenino     19        ATLETISMO
## 15      Karen Masculino     16 FUTBOL AMERICANO
## 16     Andrea  Femenino     19        ATLETISMO
## 17  Esmeralda Masculino     41        ATLETISMO
## 18    Osvaldo  Femenino     37       BASQUETBOL
## 19       LUIS Masculino     55           FUTBOL
## 20      Dafne Masculino     30            RUGBY
## 21      Dafne Masculino     32           KARATE
## 22     Daniel Masculino     48            RUGBY
## 23      Oscar Masculino     23            TENIS
## 24       LUIS Masculino     39 FUTBOL AMERICANO
## 25      Karen Masculino     49       BASQUETBOL
## 26     Daniel Masculino     35            TENIS
## 27      Edson  Femenino     46          BEISBOL
## 28      Edson  Femenino     34         NATACION
## 29  Esmeralda  Femenino     39        ATLETISMO
## 30   Gabriela  Femenino     51          BEISBOL
## 31      Sofia Masculino     38            RUGBY
## 32      Sofia  Femenino     53           Jockey
## 33    Osvaldo  Femenino     42 FUTBOL AMERICANO
## 34       LUIS  Femenino     43            TENIS
## 35    Osvaldo  Femenino     42           KARATE
## 36     Daniel Masculino     44           KARATE
## 37     Andrea Masculino     59        ATLETISMO
## 38     Daniel  Femenino     40            TENIS
## 39  Monserrat Masculino     18        ATLETISMO
## 40   Patricia  Femenino     54           Jockey
## 41   Gabriela Masculino     45           KARATE
## 42     Daniel Masculino     35        ATLETISMO
## 43     Monica Masculino     20           KARATE
## 44  Monserrat  Femenino     28        ATLETISMO
## 45    Osvaldo  Femenino     54            TENIS
## 46     Daniel  Femenino     15           Jockey
## 47     Daniel  Femenino     59            RUGBY
## 48    Osvaldo Masculino     28       BASQUETBOL
## 49    Osvaldo Masculino     22          BEISBOL
## 50      Issac  Femenino     16        ATLETISMO
## 51     Daniel Masculino     32          BEISBOL
## 52      Sofia Masculino     57           Jockey
## 53     Andrea Masculino     17 FUTBOL AMERICANO
## 54     Daniel Masculino     56       BASQUETBOL
## 55      Karen  Femenino     37           FUTBOL
## 56      Oscar Masculino     32 FUTBOL AMERICANO
## 57      Karen Masculino     37           Jockey
## 58    Osvaldo Masculino     34         NATACION
## 59      Oscar  Femenino     42         NATACION
## 60  Monserrat Masculino     38           FUTBOL
## 61  Esmeralda  Femenino     49           KARATE
## 62  Monserrat  Femenino     45           Jockey
## 63      Sofia  Femenino     25          BEISBOL
## 64      Sofia  Femenino     39          BEISBOL
## 65   Patricia Masculino     44        ATLETISMO
## 66      Erick Masculino     60            TENIS
## 67  Cassandra  Femenino     31            RUGBY
## 68      Oscar Masculino     22           KARATE
## 69    Osvaldo  Femenino     31        ATLETISMO
## 70      Edson  Femenino     49           KARATE
## 71      Issac  Femenino     25          BEISBOL
## 72    Osvaldo Masculino     30 FUTBOL AMERICANO
## 73    Eduardo Masculino     41         NATACION
## 74  Esmeralda Masculino     45        ATLETISMO
## 75   Patricia  Femenino     45 FUTBOL AMERICANO
## 76    Osvaldo  Femenino     19           KARATE
## 77      Edson Masculino     24          BEISBOL
## 78      Oscar  Femenino     60           Jockey
## 79      Karen Masculino     23            RUGBY
## 80      Erick  Femenino     31          BEISBOL
## 81      Issac Masculino     33          BEISBOL
## 82  Cassandra Masculino     55        ATLETISMO
## 83      Edson  Femenino     33            TENIS
## 84      Erick  Femenino     43         NATACION
## 85    Eduardo  Femenino     52 FUTBOL AMERICANO
## 86      Dafne Masculino     41        ATLETISMO
## 87  Monserrat  Femenino     26            RUGBY
## 88      Karen Masculino     43          BEISBOL
## 89      Oscar Masculino     55          BEISBOL
## 90    Horacio Masculino     26        ATLETISMO
## 91  Esmeralda  Femenino     36          BEISBOL
## 92    Osvaldo  Femenino     42 FUTBOL AMERICANO
## 93    Horacio  Femenino     35            RUGBY
## 94     Monica Masculino     38            RUGBY
## 95      Dafne  Femenino     37            RUGBY
## 96      Karen Masculino     18            RUGBY
## 97    Gustavo  Femenino     58            TENIS
## 98      Dafne Masculino     50           Jockey
## 99  Esmeralda  Femenino     45         NATACION
## 100     Edson Masculino     28            TENIS

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

\[f = {ni/N}\]

#transform(table(personal$nombre))
tabla_frec.nombre <- data.frame(transform(table(personal$nombre)))
names(tabla_frec.nombre) <- c('nombre', 'freq') 
tabla_frec.nombre
##       nombre freq
## 1     Andrea    4
## 2  Cassandra    3
## 3      Dafne    5
## 4     Daniel    9
## 5      Edson    6
## 6    Eduardo    2
## 7      Erick    3
## 8  Esmeralda    7
## 9   Gabriela    4
## 10   Gustavo    1
## 11   Horacio    3
## 12     Issac    3
## 13     Karen    7
## 14      LUIS    6
## 15    Monica    4
## 16 Monserrat    5
## 17     Oscar    6
## 18   Osvaldo   11
## 19  Patricia    3
## 20     Sofia    8
N <- nrow(personal)
N
## [1] 100
freq.r <- tabla_frec.nombre$freq / N
freq.r
##  [1] 0.04 0.03 0.05 0.09 0.06 0.02 0.03 0.07 0.04 0.01 0.03 0.03 0.07 0.06 0.04
## [16] 0.05 0.06 0.11 0.03 0.08
freq.p <- freq.r * 100
freq.p
##  [1]  4  3  5  9  6  2  3  7  4  1  3  3  7  6  4  5  6 11  3  8
tabla_frec.nombre <- cbind(tabla_frec.nombre, freq.r, freq.p)
tabla_frec.nombre
##       nombre freq freq.r freq.p
## 1     Andrea    4   0.04      4
## 2  Cassandra    3   0.03      3
## 3      Dafne    5   0.05      5
## 4     Daniel    9   0.09      9
## 5      Edson    6   0.06      6
## 6    Eduardo    2   0.02      2
## 7      Erick    3   0.03      3
## 8  Esmeralda    7   0.07      7
## 9   Gabriela    4   0.04      4
## 10   Gustavo    1   0.01      1
## 11   Horacio    3   0.03      3
## 12     Issac    3   0.03      3
## 13     Karen    7   0.07      7
## 14      LUIS    6   0.06      6
## 15    Monica    4   0.04      4
## 16 Monserrat    5   0.05      5
## 17     Oscar    6   0.06      6
## 18   Osvaldo   11   0.11     11
## 19  Patricia    3   0.03      3
## 20     Sofia    8   0.08      8

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 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 fdt_cat() en 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 ordenado de mayor a menor con repecto a la frecuencia

tabla_frec.nombre.2 <- data.frame(fdt_cat(personal$nombre))
names(tabla_frec.nombre.2) <- c('nombres', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla_frec.nombre.2
##      nombres freq freq.r freq.p freq.acum frec.por.acum
## 1    Osvaldo   11   0.11     11        11            11
## 2     Daniel    9   0.09      9        20            20
## 3      Sofia    8   0.08      8        28            28
## 4  Esmeralda    7   0.07      7        35            35
## 5      Karen    7   0.07      7        42            42
## 6      Edson    6   0.06      6        48            48
## 7       LUIS    6   0.06      6        54            54
## 8      Oscar    6   0.06      6        60            60
## 9      Dafne    5   0.05      5        65            65
## 10 Monserrat    5   0.05      5        70            70
## 11    Andrea    4   0.04      4        74            74
## 12  Gabriela    4   0.04      4        78            78
## 13    Monica    4   0.04      4        82            82
## 14 Cassandra    3   0.03      3        85            85
## 15     Erick    3   0.03      3        88            88
## 16   Horacio    3   0.03      3        91            91
## 17     Issac    3   0.03      3        94            94
## 18  Patricia    3   0.03      3        97            97
## 19   Eduardo    2   0.02      2        99            99
## 20   Gustavo    1   0.01      1       100           100

5. Visualizar tabla de frecuencias de nombres (Barra)

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

#### 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 *La función table() genera frecuencias

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    1
## 2      16    2
## 3      17    1
## 4      18    2
## 5      19    3
## 6      20    1
## 7      22    4
## 8      23    3
## 9      24    1
## 10     25    2
## 11     26    4
## 12     28    3
## 13     30    2
## 14     31    4
## 15     32    3
## 16     33    2
## 17     34    2
## 18     35    5
## 19     36    1
## 20     37    4
## 21     38    4
## 22     39    3
## 23     40    2
## 24     41    3
## 25     42    4
## 26     43    3
## 27     44    3
## 28     45    5
## 29     46    1
## 30     48    2
## 31     49    3
## 32     50    1
## 33     51    1
## 34     52    1
## 35     53    1
## 36     54    2
## 37     55    3
## 38     56    1
## 39     57    1
## 40     58    1
## 41     59    2
## 42     60    3
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 Determinar frecuencia absoluta Determinar frecuencia relativa Determinar frecuencia porcentual Determinar frecuencia acumulada *Determinar 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', '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)   10   0.10     10        10            10
## 2 [20.57,26.29)   14   0.14     14        24            24
## 3 [26.29,32.01)   12   0.12     12        36            36
## 4 [32.01,37.73)   14   0.14     14        50            50
## 5 [37.73,43.44)   19   0.19     19        69            69
## 6 [43.44,49.16)   14   0.14     14        83            83
## 7 [49.16,54.88)    6   0.06      6        89            89
## 8  [54.88,60.6)   11   0.11     11       100           100

9. Visualizar tabla de frecuencias de edades (Barra)

*Gráfica de frecuencias de tabla_frec.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

Determinar frecuencia absoluta Determinar frecuencia relativa Determinar frecuencia porcentual Determinar frecuencia acumulada *Determinar frecuencia porcentual acumulada

tabla_frec.genero <- data.frame(fdt_cat(personal$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   53   0.53     53        53            53
## 2  Femenino   47   0.47     47       100           100

11. Visualizar tabla de frecuencias de generos (Barra)

barplot(height = tabla_frec.genero$freq, 
        names.arg = tabla_frec.genero$genero,
        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 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', '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         ATLETISMO   16   0.16     16        16            16
## 2           BEISBOL   14   0.14     14        30            30
## 3             RUGBY   11   0.11     11        41            41
## 4  FUTBOL AMERICANO   10   0.10     10        51            51
## 5            KARATE   10   0.10     10        61            61
## 6             TENIS   10   0.10     10        71            71
## 7            Jockey    9   0.09      9        80            80
## 8        BASQUETBOL    7   0.07      7        87            87
## 9          NATACION    7   0.07      7        94            94
## 10           FUTBOL    6   0.06      6       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")

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

#### 14. Conclucion Caso 2 Una nueva fucion que vimos es la sample ()Con la que podemos crear el numero que sea deseado de valores, utilizando valores numéricos o texto como base de las operaciones, con los resultados de los valores aleatorios creamos una tabla que nos sirve de base de datos para inicializar con el caso, en este caso se nos solicita frecuencia de edad, nombre, y deporte favorito, para ello usamos la función fdt(), también usamos graficas para mostrar los resultados y la función pie() para crear otro tipo de graficas.