5.2 Operaciones con variables (columnas)
Podemos seleccionar variables con select()
:
<- empleados %>% select(id, sexo, minoria, tiempemp, salini, salario)
emplea2 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()
):
%>% select(sexo, noblanca = minoria, salario) %>% head() empleados
## 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:
%>% select(sexo:salario) %>% head() empleados
## 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()
%>% select(!(sexo:salario)) %>% head() empleados
## 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:
%>% select(starts_with("s")) %>% head() empleados
## 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()
:
%>% mutate(incsal = salario - salini, tsal = incsal/tiempemp) %>% head() emplea2
## 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