5.2 Operaciones con variables (columnas)
Podemos seleccionar variables con select():
emplea2 <- empleados %>% select(id, sexo, minoria, tiempemp, salini, salario)
head(emplea2)## id sexo minoria tiempemp salini salario
## 1 1 Hombre No 98 27000 57000
## 2 2 Hombre No 98 18750 40200
## 3 3 Mujer No 98 12000 21450
## 4 4 Mujer No 98 13200 21900
## 5 5 Hombre No 98 21000 45000
## 6 6 Hombre No 98 13500 32100
Se puede cambiar el nombre (ver también rename()):
empleados %>% select(sexo, noblanca = minoria, salario) %>% head()## sexo noblanca salario
## 1 Hombre No 57000
## 2 Hombre No 40200
## 3 Mujer No 21450
## 4 Mujer No 21900
## 5 Hombre No 45000
## 6 Hombre No 32100
Se pueden emplear los nombres de variables como índices:
empleados %>% select(sexo:salario) %>% head()## sexo fechnac educ catlab salario
## 1 Hombre 1952-02-03 15 Directivo 57000
## 2 Hombre 1958-05-23 16 Administrativo 40200
## 3 Mujer 1929-07-26 12 Administrativo 21450
## 4 Mujer 1947-04-15 8 Administrativo 21900
## 5 Hombre 1955-02-09 15 Administrativo 45000
## 6 Hombre 1958-08-22 15 Administrativo 32100
# empleados %>% select(-(sexo:salario)) %>% head()
empleados %>% select(!(sexo:salario)) %>% head()## id salini tiempemp expprev minoria sexoraza
## 1 1 27000 98 144 No Blanca varón
## 2 2 18750 98 36 No Blanca varón
## 3 3 12000 98 381 No Minoría varón
## 4 4 13200 98 190 No Minoría varón
## 5 5 21000 98 138 No Blanca varón
## 6 6 13500 98 67 No Blanca varón
Se pueden emplear distintas herramientas (selection helpers) para seleccionar variables (ver paquete tidyselect):
starts_with,ends_with,contains,matches,num_range: variables que coincidan con un patrón.everything,last_col: todas las variables o la última variable.where(): a partir de una función (e.g.where(is.numeric))
Por ejemplo:
empleados %>% select(starts_with("s")) %>% head()## sexo salario salini sexoraza
## 1 Hombre 57000 27000 Blanca varón
## 2 Hombre 40200 18750 Blanca varón
## 3 Mujer 21450 12000 Minoría varón
## 4 Mujer 21900 13200 Minoría varón
## 5 Hombre 45000 21000 Blanca varón
## 6 Hombre 32100 13500 Blanca varón
Podemos crear variables con mutate():
emplea2 %>% mutate(incsal = salario - salini, tsal = incsal/tiempemp) %>% head()## id sexo minoria tiempemp salini salario incsal tsal
## 1 1 Hombre No 98 27000 57000 30000 306.12245
## 2 2 Hombre No 98 18750 40200 21450 218.87755
## 3 3 Mujer No 98 12000 21450 9450 96.42857
## 4 4 Mujer No 98 13200 21900 8700 88.77551
## 5 5 Hombre No 98 21000 45000 24000 244.89796
## 6 6 Hombre No 98 13500 32100 18600 189.79592