Objetivo: Analizar datos de salarios usando funciones de agrupación d edatos usando libreria dplyr
Las librerÃas
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) # Para tener la misma semilla cuando la generemos
Cargamos los datos de salarios
salarios <- read.csv("C:/Users/l-RaVeN-l/Documents/Ciencia de los Datos/Datos/Salaries.csv")
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) # Los primeros seis registros
## 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",
"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
## 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 IRLADA
## 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 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
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

Interpretación
Mediante funciones se filtra la informacion por año en este caso el año 2014 y el pais de origen #### Mexico de estos datos se obtiene la media, desviacion estandar.
se hace un comparativo de los paises agrupandolos por pais de origen obteniendo los datos de #### maximo, minimo, media, desviacion estandar y cuartiles al 25, 50 y 75
finalmente se haven unas graficas descriptivas.