CASO 2. Tablas de Frecuencias

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

Descripción: Crear una base de datos de 100 personas, utilizando las variables: nombre, genero, edad y deporte favorito de cada persona. Ya concluido la base de datos, elaborar tablas de frecuencias de los nombres, géneros y deporte favorito al igual que elaborar la tabla de frecuencia de las edades de las personas registradas.

1. Cargar librerías fdth

  • La librería fdth permite generar tablas de frecuencias
library(fdth)

2. Crear conjunto de datos llamado personas

  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("Juan","Daniel","Joan","Alan","Axel","Fernando","Jorge","Cristiano","Eric","Andres","Nayeli","Carolina","Gerardo","Pablo","Luis","Ann","Lucas","Dariana","Pablo","Lisa")
nombres <- sample(losnombres,100,replace = TRUE)
nombres
##   [1] "Daniel"    "Daniel"    "Lisa"      "Fernando"  "Dariana"   "Fernando" 
##   [7] "Luis"      "Lucas"     "Fernando"  "Ann"       "Nayeli"    "Nayeli"   
##  [13] "Pablo"     "Fernando"  "Dariana"   "Luis"      "Pablo"     "Lucas"    
##  [19] "Nayeli"    "Nayeli"    "Joan"      "Axel"      "Pablo"     "Dariana"  
##  [25] "Luis"      "Alan"      "Juan"      "Carolina"  "Ann"       "Juan"     
##  [31] "Juan"      "Fernando"  "Pablo"     "Fernando"  "Jorge"     "Eric"     
##  [37] "Dariana"   "Luis"      "Gerardo"   "Andres"    "Pablo"     "Gerardo"  
##  [43] "Carolina"  "Eric"      "Luis"      "Axel"      "Cristiano" "Nayeli"   
##  [49] "Lucas"     "Nayeli"    "Lisa"      "Pablo"     "Alan"      "Fernando" 
##  [55] "Pablo"     "Lucas"     "Pablo"     "Carolina"  "Cristiano" "Dariana"  
##  [61] "Gerardo"   "Eric"      "Fernando"  "Pablo"     "Axel"      "Lucas"    
##  [67] "Axel"      "Cristiano" "Ann"       "Pablo"     "Juan"      "Andres"   
##  [73] "Lisa"      "Joan"      "Jorge"     "Dariana"   "Joan"      "Gerardo"  
##  [79] "Nayeli"    "Eric"      "Luis"      "Jorge"     "Ann"       "Carolina" 
##  [85] "Ann"       "Fernando"  "Cristiano" "Eric"      "Jorge"     "Juan"     
##  [91] "Lucas"     "Nayeli"    "Jorge"     "Lisa"      "Lucas"     "Alan"     
##  [97] "Joan"      "Axel"      "Pablo"     "Fernando"
generos <- sample(c("Femenino","Masculino"), 100, replace = TRUE)

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

misdeportes <- c("FUTBOL","BASQUETBOL","TENIS","BEISBOL","NATACIÓN","BOX","AJEDREZ","KARATE","ATLETISMO","FUTBOL AMERICANO","VOLEIBOL")
deportes <- sample(misdeportes, 100, replace = TRUE)

personal <- data.frame(nombres,generos,edades,deportes)

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

#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    3
## 2     Andres    2
## 3        Ann    5
## 4       Axel    5
## 5   Carolina    4
## 6  Cristiano    4
## 7     Daniel    2
## 8    Dariana    6
## 9       Eric    5
## 10  Fernando   10
## 11   Gerardo    4
## 12      Joan    4
## 13     Jorge    5
## 14      Juan    5
## 15      Lisa    4
## 16     Lucas    7
## 17      Luis    6
## 18    Nayeli    8
## 19     Pablo   11
  • Total de elementos N
N <- nrow(personal)
N
## [1] 100
  • b Determinar frecuencia relvativa
freq.r <- tabla_frec.nombres$freq / N
freq.r
##  [1] 0.03 0.02 0.05 0.05 0.04 0.04 0.02 0.06 0.05 0.10 0.04 0.04 0.05 0.05 0.04
## [16] 0.07 0.06 0.08 0.11
  • c Determinar frecuencia porcentual
freq.p <- freq.r * 100
freq.p
##  [1]  3  2  5  5  4  4  2  6  5 10  4  4  5  5  4  7  6  8 11
  • Construyendo tabla de Distribucion
tabla_frec.nombres <- cbind(tabla_frec.nombres, freq.r, freq.p)
tabla_frec.nombres
##      nombres freq freq.r freq.p
## 1       Alan    3   0.03      3
## 2     Andres    2   0.02      2
## 3        Ann    5   0.05      5
## 4       Axel    5   0.05      5
## 5   Carolina    4   0.04      4
## 6  Cristiano    4   0.04      4
## 7     Daniel    2   0.02      2
## 8    Dariana    6   0.06      6
## 9       Eric    5   0.05      5
## 10  Fernando   10   0.10     10
## 11   Gerardo    4   0.04      4
## 12      Joan    4   0.04      4
## 13     Jorge    5   0.05      5
## 14      Juan    5   0.05      5
## 15      Lisa    4   0.04      4
## 16     Lucas    7   0.07      7
## 17      Luis    6   0.06      6
## 18    Nayeli    8   0.08      8
## 19     Pablo   11   0.11     11
  1. Crear tabla de frecuencias con fdt_cat() de la variable nombres
tabla_frec.nombres.2 <- data.frame(fdt_cat(personal$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      Pablo   11   0.11     11        11            11
## 2   Fernando   10   0.10     10        21            21
## 3     Nayeli    8   0.08      8        29            29
## 4      Lucas    7   0.07      7        36            36
## 5    Dariana    6   0.06      6        42            42
## 6       Luis    6   0.06      6        48            48
## 7        Ann    5   0.05      5        53            53
## 8       Axel    5   0.05      5        58            58
## 9       Eric    5   0.05      5        63            63
## 10     Jorge    5   0.05      5        68            68
## 11      Juan    5   0.05      5        73            73
## 12  Carolina    4   0.04      4        77            77
## 13 Cristiano    4   0.04      4        81            81
## 14   Gerardo    4   0.04      4        85            85
## 15      Joan    4   0.04      4        89            89
## 16      Lisa    4   0.04      4        93            93
## 17      Alan    3   0.03      3        96            96
## 18    Andres    2   0.02      2        98            98
## 19    Daniel    2   0.02      2       100           100
  1. Visualizer 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(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)))
# tabla.frecuencias.edades

names(tabla.frec.edades) <- c("edades", "freq")
tabla.frec.edades
##    edades freq
## 1      15    2
## 2      16    3
## 3      17    4
## 4      18    4
## 5      19    1
## 6      20    1
## 7      21    2
## 8      22    1
## 9      23    1
## 10     24    1
## 11     25    3
## 12     26    4
## 13     27    1
## 14     28    1
## 15     29    2
## 16     30    2
## 17     31    2
## 18     32    5
## 19     33    1
## 20     34    2
## 21     35    3
## 22     37    4
## 23     38    1
## 24     39    4
## 25     42    3
## 26     44    3
## 27     47    5
## 28     48    4
## 29     49    2
## 30     50    2
## 31     51    2
## 32     52    1
## 33     53    3
## 34     54    2
## 35     55    5
## 36     56    2
## 37     57    5
## 38     58    1
## 39     59    4
## 40     60    1
  1. Crear tabla de Frecuencias con fdt() de la variable EDADES
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)   15   0.15     15        15            15
## 2 [20.57,26.29)   12   0.12     12        27            27
## 3 [26.29,32.01)   13   0.13     13        40            40
## 4 [32.01,37.73)   10   0.10     10        50            50
## 5 [37.73,43.44)    8   0.08      8        58            58
## 6 [43.44,49.16)   14   0.14     14        72            72
## 7 [49.16,54.88)   10   0.10     10        82            82
## 8  [54.88,60.6)   18   0.18     18       100           100
  1. Visualizar tabla de frecuencias de EDADES (BARRA)
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(personal$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   60    0.6     60        60            60
## 2 Masculino   40    0.4     40       100           100
  1. 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(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            KARATE   12   0.12     12        12            12
## 2          NATACIÓN   12   0.12     12        24            24
## 3            FUTBOL   11   0.11     11        35            35
## 4          VOLEIBOL   11   0.11     11        46            46
## 5             TENIS   10   0.10     10        56            56
## 6         ATLETISMO    9   0.09      9        65            65
## 7        BASQUETBOL    9   0.09      9        74            74
## 8  FUTBOL AMERICANO    8   0.08      8        82            82
## 9           AJEDREZ    7   0.07      7        89            89
## 10          BEISBOL    7   0.07      7        96            96
## 11              BOX    4   0.04      4       100           100
  1. 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 2

Deacuerdo al caso y la tabla de EDADES refleja que hay muchas personas en la edad de 23 y 42 años.

En la tabla de NOMBRES, salio que muchas personas se llaman Luis (10) y Pablo (11)