select()
Lo primero sera instalar el paquete con el conjunto de datos que utilizaremos para los ejemplos:
install.packages("devtools")
devtools::install_github("rstudio/EDAWR")
Tendremos que cargar la libreria para poder utilizarla:
library(EDAWR)
Podemos echar un vistazo al conjunto de datos mediante ? or el comando Viem():
?storms
?cases
?pollution
?tb
View(storms)
View(cases)
View(pollution)
View(tb)
Con la función select podemos seleccionar columnas de un data frame:
Visualizamos el contenido del data frame storms:
storms
## Source: local data frame [6 x 4]
##
## storm wind pressure date
## (chr) (int) (int) (date)
## 1 Alberto 110 1007 2000-08-03
## 2 Alex 45 1009 1998-07-27
## 3 Allison 65 1005 1995-06-03
## 4 Ana 40 1013 1997-06-30
## 5 Arlene 50 1010 1999-06-11
## 6 Arthur 45 1010 1996-06-17
Para seleccionar las variables storm y pressure del data frame ejecutaremos la siguiente instrucción:
select(storms, storm, pressure)
## Source: local data frame [6 x 2]
##
## storm pressure
## (chr) (int)
## 1 Alberto 1007
## 2 Alex 1009
## 3 Allison 1005
## 4 Ana 1013
## 5 Arlene 1010
## 6 Arthur 1010
Con el guión - podemos excluir una columna:
select(storms, -storm)
## Source: local data frame [6 x 3]
##
## wind pressure date
## (int) (int) (date)
## 1 110 1007 2000-08-03
## 2 45 1009 1998-07-27
## 3 65 1005 1995-06-03
## 4 40 1013 1997-06-30
## 5 50 1010 1999-06-11
## 6 45 1010 1996-06-17
Podemos utilizar la notación : para seleccionar un rango de columnas:
select(storms, wind:date)
## Source: local data frame [6 x 3]
##
## wind pressure date
## (int) (int) (date)
## 1 110 1007 2000-08-03
## 2 45 1009 1998-07-27
## 3 65 1005 1995-06-03
## 4 40 1013 1997-06-30
## 5 50 1010 1999-06-11
## 6 45 1010 1996-06-17
Utilizando los operadores - y : de forma conjunta podemos hacer cosas como estas:
select(storms, -(storm:wind))
## Source: local data frame [6 x 2]
##
## pressure date
## (int) (date)
## 1 1007 2000-08-03
## 2 1009 1998-07-27
## 3 1005 1995-06-03
## 4 1013 1997-06-30
## 5 1010 1999-06-11
## 6 1010 1996-06-17
El paquete dplyr proporciona una serie de funciones que nos pueden facilitar mucho nuestro trabajo, como por ejemplo:
#Selecciona columnas cuyo nombre contiene un string
select(storms,starts_with("w"))
## Source: local data frame [6 x 1]
##
## wind
## (int)
## 1 110
## 2 45
## 3 65
## 4 40
## 5 50
## 6 45
#Selecciona columnas cuyo nombre termina con un string
select(storms, ends_with("e"))
## Source: local data frame [6 x 2]
##
## pressure date
## (int) (date)
## 1 1007 2000-08-03
## 2 1009 1998-07-27
## 3 1005 1995-06-03
## 4 1013 1997-06-30
## 5 1010 1999-06-11
## 6 1010 1996-06-17
#Selecciona todas las columnas
select(storms, everything())
## Source: local data frame [6 x 4]
##
## storm wind pressure date
## (chr) (int) (int) (date)
## 1 Alberto 110 1007 2000-08-03
## 2 Alex 45 1009 1998-07-27
## 3 Allison 65 1005 1995-06-03
## 4 Ana 40 1013 1997-06-30
## 5 Arlene 50 1010 1999-06-11
## 6 Arthur 45 1010 1996-06-17
#Selecciona columnas cuyo nombres contienen un string
select(storms, contains("essure"))
## Source: local data frame [6 x 1]
##
## pressure
## (int)
## 1 1007
## 2 1009
## 3 1005
## 4 1013
## 5 1010
## 6 1010
A continuación mostramos un resumen de las funciones para select que nos serán muy útiles:
*A partir de la tercera fila son funciones propias del paquete dply | |
---|---|
- | Selecciona todas las variables excepto |
: | Selecciona un rango |
contains() | Selecciona variables cuyo nombre contiene la cadena de texto |
ends_with() | Selecciona variables cuyo nombre termina con la cadena de caracteres |
everything() | Selecciona todas las columnas |
matches() | Selecciona las variables cuyos nombres coinciden con una expresión regular |
num_range() | Selecciona las variables por posición |
one_of() | Selecciona variables cuyos nombres están en un grupo de nombres |
start_with() | Selecciona variables cuyos nombres empiezan con la cadena de caracteres |