Objetivo: Crear documento con formato html markdown para publicarse en Rpubs que muestre la creación de un dataframe en R que integre un conjunto de vectores con atributos de nombres, edades, generos, sueldos, estados civiles de 15 personas y muestre e interprete análisis de los de datos.
Creacion de vectores y posteriormente DataFrame
# Primero llenamos los vectores
nombres <- c("Juan", "Mary", "Ruben", "Paty", "Jorge", "Luis","Olga", "Veronica", "Mimi", "Karina", "Cesar", "Daniela", "Martin", "Vaneza", "Angel")
edades<- c(40,26,56,70,3,17,23,45,34,28,35,29,63,71,21)
generos <- c("M", "F","M", "F","M", "M", "F", "F", "F", "F","M", "F","M", "F","M")
sueldos <- c(5400.90, 6800.50, 34200.20, 68400.40, 23500.90, 32900, 23550.90, 25800.20, 20500.40, 21800.20,45231.22, 8995.12, 30245.12, 24997.21, 52857.20 )
edociviles <- c("S", "C", "V", "D", "V", "S" , "C","V", "D" ,"V", "C", "V", "D", "V","S")
#Creando DataFrame
personas <- data.frame(nombres,edades,generos,sueldos,edociviles)
Mostrar el dataframe en pantalla. Todos los registros y todas las columnas.
# Mostrando DataFrame
personas
## nombres edades generos sueldos edociviles
## 1 Juan 40 M 5400.90 S
## 2 Mary 26 F 6800.50 C
## 3 Ruben 56 M 34200.20 V
## 4 Paty 70 F 68400.40 D
## 5 Jorge 3 M 23500.90 V
## 6 Luis 17 M 32900.00 S
## 7 Olga 23 F 23550.90 C
## 8 Veronica 45 F 25800.20 V
## 9 Mimi 34 F 20500.40 D
## 10 Karina 28 F 21800.20 V
## 11 Cesar 35 M 45231.22 C
## 12 Daniela 29 F 8995.12 V
## 13 Martin 63 M 30245.12 D
## 14 Vaneza 71 F 24997.21 V
## 15 Angel 21 M 52857.20 S
Accediendo a ciertos registros
# Todos los Nombres del DataFrame Personas
personas$nombres
## [1] Juan Mary Ruben Paty Jorge Luis Olga
## [8] Veronica Mimi Karina Cesar Daniela Martin Vaneza
## [15] Angel
## 15 Levels: Angel Cesar Daniela Jorge Juan Karina Luis Martin Mary ... Veronica
# Todos los Generos del DataFrame Personas
personas$generos
## [1] M F M F M M F F F F M F M F M
## Levels: F M
# Muestra el registro 5 con todos los atributos
personas[5,]
## nombres edades generos sueldos edociviles
## 5 Jorge 3 M 23500.9 V
# Muestra el registro 6 con todos los atributos
personas[6,]
## nombres edades generos sueldos edociviles
## 6 Luis 17 M 32900 S
# Muestra el registro 7 con los atributos de las columnas 1, 3 y 4
personas [7, c(1,3,4)]
## nombres generos sueldos
## 7 Olga F 23550.9
# Muestra el registro 8 con los atributos de las columnas 1, 3 y 4
personas [8, c(1,3,4)]
## nombres generos sueldos
## 8 Veronica F 25800.2
Realizar análisis general
# La persona con mas alto salario y sus datos
personas[which.max((personas$sueldos)),]
## nombres edades generos sueldos edociviles
## 4 Paty 70 F 68400.4 D
# La persona con mas bajo salario y sus datos
personas[which.min((personas$sueldos)),]
## nombres edades generos sueldos edociviles
## 1 Juan 40 M 5400.9 S
# La persona con mayor edad y sus datos
personas[which.max((personas$edades)),]
## nombres edades generos sueldos edociviles
## 14 Vaneza 71 F 24997.21 V
# La persona con menor edad y sus datos
personas[which.min((personas$edades)),]
## nombres edades generos sueldos edociviles
## 5 Jorge 3 M 23500.9 V
Determinar rango de persona por sueldo
# Personas con sueldos entre $22,000 y $28,000 Muestra todos los atributos
personas[which(personas$sueldo >= 22000 & personas$sueldo <= 28000), ]
## nombres edades generos sueldos edociviles
## 5 Jorge 3 M 23500.90 V
## 7 Olga 23 F 23550.90 C
## 8 Veronica 45 F 25800.20 V
## 14 Vaneza 71 F 24997.21 V
# Personas con edades por encima de la media
personas[which(personas$edades >= mean(personas$edades)), ]
## nombres edades generos sueldos edociviles
## 1 Juan 40 M 5400.90 S
## 3 Ruben 56 M 34200.20 V
## 4 Paty 70 F 68400.40 D
## 8 Veronica 45 F 25800.20 V
## 13 Martin 63 M 30245.12 D
## 14 Vaneza 71 F 24997.21 V
Mostrar una interpretación de la práctica
paste("En la práctica el conjunto de datos es de",nrow(personas), " Registros y tiene", length(personas)," columnas, la persona que más gana es ", personas[which.max((personas$sueldos)),c(1)],", su sueldo es de $", personas[which.max((personas$sueldos)),c(4)], ", la persona que menos ingresos recibe es", personas[which.min((personas$sueldos)),c(1)], ", su sueldo es de $",personas[which.min((personas$sueldos)),c(4)], ".
El valor medio del sueldo del conjunto de datos es $", round(mean(personas$sueldos),2))
## [1] "En la práctica el conjunto de datos es de 15 Registros y tiene 5 columnas, la persona que más gana es Paty , su sueldo es de $ 68400.4 , la persona que menos ingresos recibe es Juan , su sueldo es de $ 5400.9 .\nEl valor medio del sueldo del conjunto de datos es $ 28345.36"
paste("Por otra parte, con respecto a las edades, el valor medio es de",mean(personas$edades),"años , la persona más joven se llama", personas[which.min((personas$edades)),c(1)], " y tiene", personas[which.min((personas$edades)),c(2)], "años y la persona con mayor edad se llama",personas[which.max((personas$edades)),c(1)], "y tienen", personas[which.max((personas$edades)),c(2)],"años.")
## [1] "Por otra parte, con respecto a las edades, el valor medio es de 37.4 años , la persona más joven se llama Jorge y tiene 3 años y la persona con mayor edad se llama Vaneza y tienen 71 años."
paste("Continuando con el analisis las personas que tienen un sueldo entre 22000.00 y 28000.00 son:")
## [1] "Continuando con el analisis las personas que tienen un sueldo entre 22000.00 y 28000.00 son:"
personas[which(personas$sueldo >= 22000 & personas$sueldo <= 28000), ]
## nombres edades generos sueldos edociviles
## 5 Jorge 3 M 23500.90 V
## 7 Olga 23 F 23550.90 C
## 8 Veronica 45 F 25800.20 V
## 14 Vaneza 71 F 24997.21 V
print ("Y por último se muestran que las personas que están por encima de la media de edad son:")
## [1] "Y por último se muestran que las personas que están por encima de la media de edad son:"
personas[which(personas$edades >= mean(personas$edades)), ]
## nombres edades generos sueldos edociviles
## 1 Juan 40 M 5400.90 S
## 3 Ruben 56 M 34200.20 V
## 4 Paty 70 F 68400.40 D
## 8 Veronica 45 F 25800.20 V
## 13 Martin 63 M 30245.12 D
## 14 Vaneza 71 F 24997.21 V