Objetivo: Analizar datos agrupados usando funciones de libreria dplyr
Librerias
library(readr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
require(stats)
Cargar datos
salarios <- read.csv("C:/Users/Matilda/Documents/Ciencia de los datos/Datos/Salaries.csv", encoding = "UTF-8")
#salarios
str(salarios)
## 'data.frame': 148654 obs. of 13 variables:
## $ X.U.FEFF.Id : int 1 2 3 4 5 6 7 8 9 10 ...
## $ EmployeeName : Factor w/ 110810 levels "A Bernard Fatooh",..: 77636 34712 1560 17232 81101 23164 3271 22709 73975 47938 ...
## $ JobTitle : Factor w/ 2159 levels "Account Clerk",..: 836 298 298 2149 594 135 246 609 246 370 ...
## $ BasePay : num 167411 155966 212739 77916 134402 ...
## $ OvertimePay : num 0 245132 106088 56121 9737 ...
## $ OtherPay : num 400184 137811 16453 198307 182235 ...
## $ Benefits : num NA NA NA NA NA NA NA NA NA NA ...
## $ TotalPay : num 567595 538909 335280 332344 326373 ...
## $ TotalPayBenefits: num 567595 538909 335280 332344 326373 ...
## $ Year : int 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 ...
## $ Notes : logi NA NA NA NA NA NA ...
## $ Agency : Factor w/ 1 level "San Francisco": 1 1 1 1 1 1 1 1 1 1 ...
## $ Status : Factor w/ 3 levels "","FT","PT": 1 1 1 1 1 1 1 1 1 1 ...
summary(salarios)
## X.U.FEFF.Id EmployeeName
## Min. : 1 Kevin Lee : 13
## 1st Qu.: 37164 Richard Lee : 11
## Median : 74328 Steven Lee : 11
## Mean : 74328 William Wong: 11
## 3rd Qu.:111491 John Chan : 9
## Max. :148654 KEVIN LEE : 9
## (Other) :148590
## JobTitle BasePay
## Transit Operator : 7036 Min. : -166
## Special Nurse : 4389 1st Qu.: 33588
## Registered Nurse : 3736 Median : 65007
## Public Svc Aide-Public Works: 2518 Mean : 66325
## Police Officer 3 : 2421 3rd Qu.: 94691
## Custodian : 2418 Max. :319275
## (Other) :126136 NA's :609
## OvertimePay OtherPay Benefits
## Min. : -0.01 Min. : -7058.6 Min. : -33.89
## 1st Qu.: 0.00 1st Qu.: 0.0 1st Qu.:11535.40
## Median : 0.00 Median : 811.3 Median :28628.62
## Mean : 5066.06 Mean : 3648.8 Mean :25007.89
## 3rd Qu.: 4658.18 3rd Qu.: 4236.1 3rd Qu.:35566.86
## Max. :245131.88 Max. :400184.2 Max. :96570.66
## NA's :4 NA's :4 NA's :36163
## TotalPay TotalPayBenefits Year Notes
## Min. : -618.1 Min. : -618.1 Min. :2011 Mode:logical
## 1st Qu.: 36169.0 1st Qu.: 44065.7 1st Qu.:2012 NA's:148654
## Median : 71426.6 Median : 92404.1 Median :2013
## Mean : 74768.3 Mean : 93692.6 Mean :2013
## 3rd Qu.:105839.1 3rd Qu.:132876.5 3rd Qu.:2014
## Max. :567595.4 Max. :567595.4 Max. :2014
##
## Agency Status
## San Francisco:148654 :110535
## FT: 22334
## PT: 15785
##
##
##
##
head(salarios) # los primeros 6 salarios
## X.U.FEFF.Id EmployeeName
## 1 1 NATHANIEL FORD
## 2 2 GARY JIMENEZ
## 3 3 ALBERT PARDINI
## 4 4 CHRISTOPHER CHONG
## 5 5 PATRICK GARDNER
## 6 6 DAVID SULLIVAN
## JobTitle BasePay OvertimePay
## 1 GENERAL MANAGER-METROPOLITAN TRANSIT AUTHORITY 167411.2 0.00
## 2 CAPTAIN III (POLICE DEPARTMENT) 155966.0 245131.88
## 3 CAPTAIN III (POLICE DEPARTMENT) 212739.1 106088.18
## 4 WIRE ROPE CABLE MAINTENANCE MECHANIC 77916.0 56120.71
## 5 DEPUTY CHIEF OF DEPARTMENT,(FIRE DEPARTMENT) 134401.6 9737.00
## 6 ASSISTANT DEPUTY CHIEF II 118602.0 8601.00
## OtherPay Benefits TotalPay TotalPayBenefits Year Notes Agency
## 1 400184.2 NA 567595.4 567595.4 2011 NA San Francisco
## 2 137811.4 NA 538909.3 538909.3 2011 NA San Francisco
## 3 16452.6 NA 335279.9 335279.9 2011 NA San Francisco
## 4 198306.9 NA 332343.6 332343.6 2011 NA San Francisco
## 5 182234.6 NA 326373.2 326373.2 2011 NA San Francisco
## 6 189082.7 NA 316285.7 316285.7 2011 NA San Francisco
## Status
## 1
## 2
## 3
## 4
## 5
## 6
Agregamos la columna paisOrigen a un conjunto de datos de salarios de empleados pero unicamente del año 2014
Las nacionalidades
set.seed(1000)
nacionalidades <- c("MEXICO", "ESTADOS UNIDOS", "INGLATERRA", "JAPON", "CHINA", "ARGENTINA",
"BRASIL", "CANADA", "CHILE",
"HOLANDA", "FINLANDIA", "EGIPTO", "SUECIA", "AUSTRALIA", "FRANCIA", "ITALIA", "ESPAÑA", "CUBA", "COLOMBIA",
"IRLADA", "NORUEGA", "COREA DEL NORTE", "SINGAPUR",
"INDIA")
nacionalidades
## [1] "MEXICO" "ESTADOS UNIDOS" "INGLATERRA"
## [4] "JAPON" "CHINA" "ARGENTINA"
## [7] "BRASIL" "CANADA" "CHILE"
## [10] "HOLANDA" "FINLANDIA" "EGIPTO"
## [13] "SUECIA" "AUSTRALIA" "FRANCIA"
## [16] "ITALIA" "ESPAÑA" "CUBA"
## [19] "COLOMBIA" "IRLADA" "NORUEGA"
## [22] "COREA DEL NORTE" "SINGAPUR" "INDIA"
# Mediante mutate generar una nueva columna a salarios
# llamada paisOrigen que sea un valor aleatorios de las
# nacionalidades
# Primero vamos a generar todas las nacionalidades
n <- nrow(salarios) # Número de observaciones total de salrios
paises <- rep(nacionalidades, n*2) # Genera un vector muy grande
head(paises) ; tail(paises)
## [1] "MEXICO" "ESTADOS UNIDOS" "INGLATERRA" "JAPON"
## [5] "CHINA" "ARGENTINA"
## [1] "COLOMBIA" "IRLADA" "NORUEGA" "COREA DEL NORTE"
## [5] "SINGAPUR" "INDIA"
Generamos un conjunto de datos solo del año 2014 de los empleados
salarios2014 <- filter(salarios, Year == 2014)
n <- nrow(salarios2014) # Número de observaciones de salaros2014
# Ahora mediante función mutate() agregamos la columna a salarios2014
paises <- sample(paises, n) # Ahora una muestra aletoria de todos los paises
salarios2014 <- mutate(salarios2014, paisOrigen = paises)
head(salarios2014) # Los primeros seis
## X.U.FEFF.Id EmployeeName JobTitle BasePay
## 1 110532 David Shinn Deputy Chief 3 129150.0
## 2 110533 Amy P Hart Asst Med Examiner 318835.5
## 3 110534 William J Coaker Jr. Chief Investment Officer 257340.0
## 4 110535 Gregory P Suhr Chief of Police 307450.0
## 5 110536 Joanne M Hayes-White Chief, Fire Department 302068.0
## 6 110537 Ellen G Moffatt Asst Med Examiner 270222.0
## OvertimePay OtherPay Benefits TotalPay TotalPayBenefits Year Notes
## 1 0.00 342802.63 38780.04 471952.6 510732.7 2014 NA
## 2 10712.95 60563.54 89540.23 390112.0 479652.2 2014 NA
## 3 0.00 82313.70 96570.66 339653.7 436224.4 2014 NA
## 4 0.00 19266.72 91302.46 326716.8 418019.2 2014 NA
## 5 0.00 24165.44 91201.66 326233.4 417435.1 2014 NA
## 6 6009.22 67956.20 71580.48 344187.5 415767.9 2014 NA
## Agency Status paisOrigen
## 1 San Francisco PT ARGENTINA
## 2 San Francisco FT CANADA
## 3 San Francisco PT INGLATERRA
## 4 San Francisco FT HOLANDA
## 5 San Francisco FT COREA DEL NORTE
## 6 San Francisco FT AUSTRALIA
tail(salarios2014) # Los últimos seis
## X.U.FEFF.Id EmployeeName JobTitle BasePay
## 38118 148649 Leon Walker Custodian 0
## 38119 148650 Roy I Tillery Custodian 0
## 38120 148651 NaN NaN NaN
## 38121 148652 NaN NaN NaN
## 38122 148653 NaN NaN NaN
## 38123 148654 Joe Lopez Counselor, Log Cabin Ranch 0
## OvertimePay OtherPay Benefits TotalPay TotalPayBenefits Year Notes
## 38118 0 0.00 0 0.00 0.00 2014 NA
## 38119 0 0.00 0 0.00 0.00 2014 NA
## 38120 NaN NaN NaN 0.00 0.00 2014 NA
## 38121 NaN NaN NaN 0.00 0.00 2014 NA
## 38122 NaN NaN NaN 0.00 0.00 2014 NA
## 38123 0 -618.13 0 -618.13 -618.13 2014 NA
## Agency Status paisOrigen
## 38118 San Francisco PT CUBA
## 38119 San Francisco PT IRLADA
## 38120 San Francisco CHINA
## 38121 San Francisco CANADA
## 38122 San Francisco FINLANDIA
## 38123 San Francisco PT FINLANDIA
Analisis de datos utilizando la funcion summarize()
Ordenar resumen
resumen <- arrange(resumen, desc(media))
class(resumen) # de que tipo de datos estamos hablando
## [1] "tbl_df" "tbl" "data.frame"
resumen <- as.data.frame(resumen)
class(resumen) # De que tipo de dato queda ????
## [1] "data.frame"
resumen
## paisOrigen media desvstd maximo minimo primerCuartil
## 1 CHINA 104757.59 68022.13 329147.3 0.00 48359.66
## 2 NORUEGA 103374.01 65204.12 303476.2 0.00 56507.21
## 3 SINGAPUR 102561.50 65653.61 355299.9 0.00 48760.29
## 4 AUSTRALIA 102286.11 67673.70 415767.9 0.00 46735.38
## 5 INGLATERRA 101916.13 65730.20 436224.4 22.56 49425.95
## 6 ARGENTINA 101437.08 67311.32 510732.7 0.00 47009.44
## 7 ITALIA 101280.12 64360.54 292573.1 0.00 52387.23
## 8 EGIPTO 100941.31 66593.22 395361.9 0.00 43734.49
## 9 COLOMBIA 100889.33 68021.03 364814.5 40.46 42279.16
## 10 HOLANDA 100709.89 65745.05 418019.2 0.00 48528.23
## 11 FRANCIA 99964.57 66598.23 342814.3 75.85 41566.33
## 12 FINLANDIA 99921.13 67341.68 374598.0 -618.13 41670.33
## 13 MEXICO 99910.91 66113.36 347713.9 23.72 44503.18
## 14 IRLADA 99802.97 65080.17 314018.2 0.00 46165.07
## 15 CUBA 99644.20 67684.97 374083.5 0.00 40212.87
## 16 ESPAÑA 99219.06 65067.76 321216.7 46.36 45607.40
## 17 INDIA 98929.65 65683.19 379918.7 0.00 45005.15
## 18 COREA DEL NORTE 98892.47 64195.68 417435.1 13.77 46266.37
## 19 CANADA 98884.96 67056.75 479652.2 0.00 37950.89
## 20 BRASIL 98838.41 63843.66 353797.1 54.39 45142.11
## 21 SUECIA 98766.07 66789.62 347713.9 25.57 37987.83
## 22 CHILE 98759.42 66322.89 401070.9 0.00 41588.08
## 23 ESTADOS UNIDOS 97505.85 66338.76 398984.5 18.39 36414.26
## 24 JAPON 97134.45 67000.10 297504.6 0.00 33305.20
## segundoCuartil tercerCuartil registros
## 1 103392.28 152998.1 1561
## 2 103842.15 148389.0 1541
## 3 104669.07 144383.5 1590
## 4 102796.53 147011.8 1563
## 5 103446.04 147322.4 1573
## 6 101380.58 142663.4 1613
## 7 102321.42 141401.0 1496
## 8 101548.65 141134.4 1631
## 9 101367.54 143953.6 1604
## 10 101219.43 143386.8 1728
## 11 102354.60 141919.3 1529
## 12 101270.92 142831.0 1549
## 13 101034.81 139867.4 1561
## 14 100640.58 139592.6 1561
## 15 99363.47 142223.9 1541
## 16 100228.06 140906.0 1613
## 17 100323.83 140325.0 1649
## 18 99773.62 135564.9 1641
## 19 100917.44 140563.0 1629
## 20 100519.17 141853.7 1586
## 21 99352.40 141973.0 1632
## 22 97533.10 140824.1 1541
## 23 99051.49 139926.5 1615
## 24 96823.19 139692.7 1576
Los tres mejores y los tres peores
# Vamos a poner los tres mejores y los tres peores
mejores <- head(resumen, 3) # Los tres primeros
peores <- tail(resumen, 3)
mejores
## paisOrigen media desvstd maximo minimo primerCuartil
## 1 CHINA 104757.6 68022.13 329147.3 0 48359.66
## 2 NORUEGA 103374.0 65204.12 303476.2 0 56507.21
## 3 SINGAPUR 102561.5 65653.61 355299.9 0 48760.29
## segundoCuartil tercerCuartil registros
## 1 103392.3 152998.1 1561
## 2 103842.1 148389.0 1541
## 3 104669.1 144383.5 1590
peores
## paisOrigen media desvstd maximo minimo primerCuartil
## 22 CHILE 98759.42 66322.89 401070.9 0.00 41588.08
## 23 ESTADOS UNIDOS 97505.85 66338.76 398984.5 18.39 36414.26
## 24 JAPON 97134.45 67000.10 297504.6 0.00 33305.20
## segundoCuartil tercerCuartil registros
## 22 97533.10 140824.1 1541
## 23 99051.49 139926.5 1615
## 24 96823.19 139692.7 1576
barplot(mejores$media / 1000) # represent.. en miles

barplot(peores$media / 1000) # represent.. en miles

Analisis de los datos
print("Se analizaron los datos de los salarios de 24 paises, de los cuales nos enfocamos en los salarios de Mexico, donde podremos observar, la media, desviacion estandar, el salario minimo y maximo; asi como los se contemplan los seis mejores salarios y los seis peores. Tambien se muestran el resumen grafico de toda esta información.")
## [1] "Se analizaron los datos de los salarios de 24 paises, de los cuales nos enfocamos en los salarios de Mexico, donde podremos observar, la media, desviacion estandar, el salario minimo y maximo; asi como los se contemplan los seis mejores salarios y los seis peores. Tambien se muestran el resumen grafico de toda esta información."
paste("Se analizaron los datos de los salarios de 24 paises, de los cuales nos enfocamos en los salarios de Mexico, donde podremos observar, la media, desviacion estandar, el salario minimo y maximo; asi como los se contemplan los seis mejores salarios y los seis peores. Tambien se muestran el resumen grafico de toda esta información.")
## [1] "Se analizaron los datos de los salarios de 24 paises, de los cuales nos enfocamos en los salarios de Mexico, donde podremos observar, la media, desviacion estandar, el salario minimo y maximo; asi como los se contemplan los seis mejores salarios y los seis peores. Tambien se muestran el resumen grafico de toda esta información."