select {dplyr} | R Documentation |
select()
keeps only the variables you mention; rename()
keeps all variables.
select(.data, ...) rename(.data, ...)
.data |
A tbl. All main verbs are S3 generics and provide methods
for |
... |
One or more unquoted expressions separated by commas. You can treat variable names like they are positions. Positive values select variables; negative values to drop variables.
If the first expression is negative, Use named arguments to rename selected variables. These arguments are automatically quoted and
evaluated in a context where column names
represent column positions. They support
unquoting and splicing. See
|
An object of the same class as .data
.
As well as using existing functions like :
and c()
, there are
a number of special functions that only work inside select
To drop variables, use -
.
Note that except for :
, -
and c()
, all complex expressions
are evaluated outside the data frame context. This is to prevent
accidental matching of data frame variables when you refer to
variables from the calling context.
The three scoped variants of select()
(select_all()
,
select_if()
and select_at()
) and the three variants of
rename()
(rename_all()
, rename_if()
, rename_at()
) make it
easy to apply a renaming function to a selection of variables.
When applied to a data frame, row names are silently dropped. To preserve,
convert to an explicit variable with tibble::rownames_to_column()
.
Other single table verbs: arrange
,
filter
, mutate
,
slice
, summarise
iris <- as_tibble(iris) # so it prints a little nicer select(iris, starts_with("Petal")) select(iris, ends_with("Width")) # Move Species variable to the front select(iris, Species, everything()) df <- as.data.frame(matrix(runif(100), nrow = 10)) df <- tbl_df(df[c(3, 4, 7, 1, 9, 8, 5, 2, 6, 10)]) select(df, V4:V6) select(df, num_range("V", 4:6)) # Drop variables with - select(iris, -starts_with("Petal")) # The .data pronoun is available: select(mtcars, .data$cyl) select(mtcars, .data$mpg : .data$disp) # However it isn't available within calls since those are evaluated # outside of the data context. This would fail if run: # select(mtcars, identical(.data$cyl)) # Renaming ----------------------------------------- # * select() keeps only the variables you specify select(iris, petal_length = Petal.Length) # * rename() keeps all variables rename(iris, petal_length = Petal.Length) # Unquoting ---------------------------------------- # Like all dplyr verbs, select() supports unquoting of symbols: vars <- list( var1 = sym("cyl"), var2 = sym("am") ) select(mtcars, !!!vars) # For convenience it also supports strings and character # vectors. This is unlike other verbs where strings would be # ambiguous. vars <- c(var1 = "cyl", var2 ="am") select(mtcars, !!vars) rename(mtcars, !!vars)