Objetivo: Analizar datos de salarios usando funciones de agrupación de datos usando libreria dplyr
Las 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)
Cargamos los datos de salarios
Los Datos
salarios <- read.csv ("C:/Users/Usuario/Documents/Ciencia de los datos/datos/Salaries.csv")
#salarios #ya no lo queremos ver
str(salarios)
## 'data.frame': 148654 obs. of 13 variables:
## $ 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)
## 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)
## Id EmployeeName JobTitle
## 1 1 NATHANIEL FORD GENERAL MANAGER-METROPOLITAN TRANSIT AUTHORITY
## 2 2 GARY JIMENEZ CAPTAIN III (POLICE DEPARTMENT)
## 3 3 ALBERT PARDINI CAPTAIN III (POLICE DEPARTMENT)
## 4 4 CHRISTOPHER CHONG WIRE ROPE CABLE MAINTENANCE MECHANIC
## 5 5 PATRICK GARDNER DEPUTY CHIEF OF DEPARTMENT,(FIRE DEPARTMENT)
## 6 6 DAVID SULLIVAN ASSISTANT DEPUTY CHIEF II
## BasePay OvertimePay OtherPay Benefits TotalPay TotalPayBenefits Year
## 1 167411.2 0.00 400184.2 NA 567595.4 567595.4 2011
## 2 155966.0 245131.88 137811.4 NA 538909.3 538909.3 2011
## 3 212739.1 106088.18 16452.6 NA 335279.9 335279.9 2011
## 4 77916.0 56120.71 198306.9 NA 332343.6 332343.6 2011
## 5 134401.6 9737.00 182234.6 NA 326373.2 326373.2 2011
## 6 118602.0 8601.00 189082.7 NA 316285.7 316285.7 2011
## Notes Agency Status
## 1 NA San Francisco
## 2 NA San Francisco
## 3 NA San Francisco
## 4 NA San Francisco
## 5 NA San Francisco
## 6 NA San Francisco
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","IRLANDA", "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" "IRLANDA" "NORUEGA"
## [22] "COREA DEL NORTE" "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 salarios 2014
# 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
## 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
## Id EmployeeName JobTitle BasePay OvertimePay
## 38118 148649 Leon Walker Custodian 0 0
## 38119 148650 Roy I Tillery Custodian 0 0
## 38120 148651 NaN NaN NaN NaN
## 38121 148652 NaN NaN NaN NaN
## 38122 148653 NaN NaN NaN NaN
## 38123 148654 Joe Lopez Counselor, Log Cabin Ranch 0 0
## OtherPay Benefits TotalPay TotalPayBenefits Year Notes Agency
## 38118 0.00 0 0.00 0.00 2014 NA San Francisco
## 38119 0.00 0 0.00 0.00 2014 NA San Francisco
## 38120 NaN NaN 0.00 0.00 2014 NA San Francisco
## 38121 NaN NaN 0.00 0.00 2014 NA San Francisco
## 38122 NaN NaN 0.00 0.00 2014 NA San Francisco
## 38123 -618.13 0 -618.13 -618.13 2014 NA San Francisco
## Status paisOrigen
## 38118 PT CUBA
## 38119 PT IRLANDA
## 38120 CHINA
## 38121 CANADA
## 38122 FINLANDIA
## 38123 PT FINLANDIA
Análisis de datos haciendo agrupaciones mediante summarize()
Ordenando 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 IRLANDA 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
Visualizando resumen
# Vamos a visualizar resumen
pie(head(resumen$media)) # Muy feo

# 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

Interpretacion: AnaliZamos datos usando funciones de agrupacion contenidas en la libreria dplyr, usamos un archivo descargado en nuestro equipo con 148654 registros, generamos columnas nuevas con datos cargados en forma aleatoria, en este caso nacionalidades, donde obtuvimos resultados por ejemplo de media y desviacion estandar del sueldo de mexicanos en 2014, al final graficamos los 3 mejores que fueron Cuba, Finlandia y Suecia y los 3 peores salarios que fueron Corea del Norte, Canada y Australia