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.
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
*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
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
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
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
*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")
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
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
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.