#Caso 2
#Objetivo.
#Generar tablas de frecuencias con un conjunto de datos de 100 registros
#Descripcion.
#Crear un conjunto de datos de 100 registros con cuatro variables: nombre, #genero, edad y deporto 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.

losnombres <- c("PACO",'PEDRO','MARIO','GUADALUPE','LUIS','MARIA','LAURA','PATRICIA','ANDREA','SAMIRA')
nombres <- sample(losnombres, 100, replace = TRUE)

generos <- sample(c('Masculino', 'Femenino'), 100, replace = TRUE)

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

misdeportes <- c("FUTBOL",'TENIS', 'AJEDREZ','NATACION','KARATE','BASQUETBOL','RUGBY','ESGRIMA','KENDO','ATLETISMO')
deportes <- sample(misdeportes, 100, replace = TRUE)

personas <- data.frame(nombres, generos, edades, deportes)
personas
##       nombres   generos edades   deportes
## 1        LUIS Masculino     45    ESGRIMA
## 2   GUADALUPE  Femenino     17      KENDO
## 3        LUIS Masculino     38      TENIS
## 4      ANDREA Masculino     55    AJEDREZ
## 5      SAMIRA Masculino     53      KENDO
## 6       MARIA  Femenino     37  ATLETISMO
## 7      ANDREA Masculino     31    AJEDREZ
## 8       PEDRO  Femenino     21    ESGRIMA
## 9        PACO Masculino     47      KENDO
## 10  GUADALUPE  Femenino     37     FUTBOL
## 11       PACO  Femenino     41    ESGRIMA
## 12      MARIO  Femenino     35     KARATE
## 13     ANDREA  Femenino     57    ESGRIMA
## 14  GUADALUPE Masculino     47  ATLETISMO
## 15     SAMIRA  Femenino     60      RUGBY
## 16      PEDRO  Femenino     35     FUTBOL
## 17      LAURA Masculino     24 BASQUETBOL
## 18       PACO  Femenino     29  ATLETISMO
## 19  GUADALUPE  Femenino     28     KARATE
## 20       LUIS  Femenino     32    ESGRIMA
## 21   PATRICIA  Femenino     15  ATLETISMO
## 22       LUIS Masculino     19  ATLETISMO
## 23      LAURA  Femenino     56    AJEDREZ
## 24      MARIA Masculino     19 BASQUETBOL
## 25   PATRICIA Masculino     44     KARATE
## 26      MARIA Masculino     48     FUTBOL
## 27  GUADALUPE Masculino     51    ESGRIMA
## 28      MARIO  Femenino     27  ATLETISMO
## 29       PACO  Femenino     49   NATACION
## 30       PACO  Femenino     28      RUGBY
## 31     ANDREA  Femenino     42      RUGBY
## 32     ANDREA  Femenino     43  ATLETISMO
## 33     SAMIRA  Femenino     19 BASQUETBOL
## 34     SAMIRA Masculino     48  ATLETISMO
## 35  GUADALUPE  Femenino     38    AJEDREZ
## 36     ANDREA  Femenino     34     KARATE
## 37       PACO  Femenino     51     KARATE
## 38  GUADALUPE Masculino     55   NATACION
## 39     ANDREA  Femenino     41  ATLETISMO
## 40       PACO  Femenino     28     KARATE
## 41  GUADALUPE Masculino     59    AJEDREZ
## 42      LAURA  Femenino     16   NATACION
## 43       PACO Masculino     26      KENDO
## 44   PATRICIA Masculino     47     KARATE
## 45      LAURA  Femenino     31      TENIS
## 46      PEDRO Masculino     33     FUTBOL
## 47  GUADALUPE Masculino     47    ESGRIMA
## 48     SAMIRA  Femenino     36     FUTBOL
## 49     ANDREA Masculino     42    ESGRIMA
## 50      PEDRO Masculino     56      KENDO
## 51      LAURA  Femenino     27     FUTBOL
## 52      LAURA Masculino     38     KARATE
## 53       LUIS  Femenino     20 BASQUETBOL
## 54     ANDREA  Femenino     40 BASQUETBOL
## 55       PACO  Femenino     20    AJEDREZ
## 56     SAMIRA  Femenino     18 BASQUETBOL
## 57       LUIS Masculino     32    AJEDREZ
## 58     SAMIRA Masculino     42      RUGBY
## 59   PATRICIA Masculino     54     FUTBOL
## 60      LAURA Masculino     25 BASQUETBOL
## 61      LAURA Masculino     42     KARATE
## 62      MARIO Masculino     19     KARATE
## 63     ANDREA Masculino     55    ESGRIMA
## 64  GUADALUPE Masculino     46     FUTBOL
## 65      MARIO Masculino     58     FUTBOL
## 66       PACO  Femenino     55    ESGRIMA
## 67  GUADALUPE Masculino     54      RUGBY
## 68      MARIA Masculino     46      KENDO
## 69      PEDRO Masculino     29     KARATE
## 70      MARIO  Femenino     45      TENIS
## 71   PATRICIA Masculino     44 BASQUETBOL
## 72     ANDREA  Femenino     15    ESGRIMA
## 73      LAURA  Femenino     38    AJEDREZ
## 74   PATRICIA  Femenino     50    AJEDREZ
## 75     ANDREA  Femenino     18 BASQUETBOL
## 76     SAMIRA  Femenino     30     KARATE
## 77  GUADALUPE Masculino     20      TENIS
## 78      PEDRO Masculino     23      TENIS
## 79      LAURA Masculino     32   NATACION
## 80      LAURA Masculino     19  ATLETISMO
## 81      LAURA Masculino     28    ESGRIMA
## 82       PACO  Femenino     39    ESGRIMA
## 83     ANDREA  Femenino     48 BASQUETBOL
## 84      MARIA Masculino     38    ESGRIMA
## 85       PACO  Femenino     54      KENDO
## 86      LAURA Masculino     30      TENIS
## 87      MARIO  Femenino     53      RUGBY
## 88   PATRICIA Masculino     54     KARATE
## 89       PACO Masculino     50  ATLETISMO
## 90      MARIO Masculino     27  ATLETISMO
## 91   PATRICIA Masculino     26      KENDO
## 92     SAMIRA Masculino     57     KARATE
## 93      PEDRO  Femenino     45    AJEDREZ
## 94       PACO  Femenino     39 BASQUETBOL
## 95      LAURA Masculino     20     FUTBOL
## 96     ANDREA  Femenino     26      TENIS
## 97      LAURA  Femenino     50      RUGBY
## 98   PATRICIA Masculino     35   NATACION
## 99   PATRICIA Masculino     24      RUGBY
## 100     MARIO Masculino     32 BASQUETBOL
#3. Crear tabla de frecuencia

    #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
    #La fórmula de frecuencia 
    
    #fi=ni/N
    
    tabla_frec.nombres <- data.frame(transform(table(personas$nombres)))
names(tabla_frec.nombres) <- c('Nombre', 'Frecuencia')
tabla_frec.nombres
##       Nombre Frecuencia
## 1     ANDREA         14
## 2  GUADALUPE         12
## 3      LAURA         15
## 4       LUIS          6
## 5      MARIA          5
## 6      MARIO          8
## 7       PACO         14
## 8   PATRICIA         10
## 9      PEDRO          7
## 10    SAMIRA          9
tabla_frec.nombres <- data.frame(fdt_cat(personas$nombres))
names(tabla_frec.nombres) <- c('nombres', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla_frec.nombres
##      nombres freq freq.r freq.p freq.acum frec.por.acum
## 1      LAURA   15   0.15     15        15            15
## 2     ANDREA   14   0.14     14        29            29
## 3       PACO   14   0.14     14        43            43
## 4  GUADALUPE   12   0.12     12        55            55
## 5   PATRICIA   10   0.10     10        65            65
## 6     SAMIRA    9   0.09      9        74            74
## 7      MARIO    8   0.08      8        82            82
## 8      PEDRO    7   0.07      7        89            89
## 9       LUIS    6   0.06      6        95            95
## 10     MARIA    5   0.05      5       100           100
#5. Visualizar tabla de frecuencias de nombres

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

#6. Visualizar un histograma de la variable edades

hist(personas$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
    #Gráfica de frecuencias de tabla_frec.edades


tabla.frec.edades <- data.frame(transform(table(personas$edades)))
names(tabla.frec.edades) <- c("edades", "freq")

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, frecuencia relativa, frecuencia porcentual, frecuencia acumulada, y frecuencia porcentual acumulada

tabla.frec.edades_2 <- fdt(personas$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)    8   0.08      8        23            23
## 3 [26.29,32.01)   17   0.17     17        40            40
## 4 [32.01,37.73)    8   0.08      8        48            48
## 5 [37.73,43.44)   15   0.15     15        63            63
## 6 [43.44,49.16)   15   0.15     15        78            78
## 7 [49.16,54.88)   11   0.11     11        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_2
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, frecuencia relativa, frecuencia porcentual, frecuencia acumulada, y frecuencia porcentual acumulada

tabla_frec.genero <- data.frame(fdt_cat(personas$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 Masculino   52   0.52     52        52            52
## 2  Femenino   48   0.48     48       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$generos,
    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.deporte <- data.frame(fdt_cat(personas$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     ESGRIMA   14   0.14     14        14            14
## 2      KARATE   14   0.14     14        28            28
## 3   ATLETISMO   12   0.12     12        40            40
## 4  BASQUETBOL   12   0.12     12        52            52
## 5     AJEDREZ   10   0.10     10        62            62
## 6      FUTBOL   10   0.10     10        72            72
## 7       KENDO    8   0.08      8        80            80
## 8       RUGBY    8   0.08      8        88            88
## 9       TENIS    7   0.07      7        95            95
## 10   NATACION    5   0.05      5       100           100
#13. Visualizar tabla de frecuencias de deportes

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

#Interpretacion
#COn la funcion sample, se puede generar multiples valores o ya bien usar los mimos de forma diferente, como se muestran en las graficas tambien se pueden cambiar gracias a la funcion pie()