select

0th

Percentile

Select/rename variables by name.

select() keeps only the variables you mention; rename() keeps all variables.

Usage
select(.data, ...)

select_(.data, ..., .dots)

rename(.data, ...)

rename_(.data, ..., .dots)

Arguments
.data

A tbl. All main verbs are S3 generics and provide methods for tbl_df, tbl_dt and tbl_sql.

...

Comma separated list of unquoted expressions. You can treat variable names like they are positions. Use positive values to select variables; use negative values to drop variables.

.dots

Use select_() to do standard evaluation. See vignette("nse") for details

Value

An object of the same class as .data.

Data frame row names are silently dropped. To preserve, convert to an explicit variable.

Special functions

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 -. You can rename variables with named arguments.

See Also

Other single.table.verbs: arrange, filter, mutate, slice, summarise

Aliases
  • rename
  • rename_
  • select
  • select_
Examples
library(dplyr) iris <- tbl_df(iris) # so it prints a little nicer select(iris, starts_with("Petal")) select(iris, ends_with("Width")) select(iris, contains("etal")) select(iris, matches(".t.")) select(iris, Petal.Length, Petal.Width) vars <- c("Petal.Length", "Petal.Width") select(iris, one_of(vars)) 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 select(iris, -starts_with("Petal")) select(iris, -ends_with("Width")) select(iris, -contains("etal")) select(iris, -matches(".t.")) select(iris, -Petal.Length, -Petal.Width) # Rename variables: # * select() keeps only the variables you specify select(iris, petal_length = Petal.Length) # Renaming multiple variables uses a prefix: select(iris, petal = starts_with("Petal")) # Reorder variables: keep the variable "Species" in the front select(iris, Species, everything()) # * rename() keeps all variables rename(iris, petal_length = Petal.Length) # Programming with select --------------------------------------------------- select_(iris, ~Petal.Length) select_(iris, "Petal.Length") select_(iris, lazyeval::interp(~matches(x), x = ".t.")) select_(iris, quote(-Petal.Length), quote(-Petal.Width)) select_(iris, .dots = list(quote(-Petal.Length), quote(-Petal.Width)))
Documentation reproduced from package dplyr, version 0.5.0, License: MIT + file LICENSE

Community examples

richie@datacamp.com at Jan 18, 2017 dplyr v0.5.0

## Column selection with `select()` `select()` is used to take a subset of a data frame by columns. Before you begin, take a look at the columns in the `warpbreaks` dataset, along with their types. Also note the use of [`as_data_frame()`](https://www.rdocumentation.org/packages/dplyr/topics/as_data_frame) to make the output prettier. ```{r} str(warpbreaks) # prints everything warpbreaks # selected output library(dplyr) (warpbreaks <- as_data_frame(warpbreaks)) ``` `select()` takes a data frame as its first argument, and the unquoted names of columns of that data frame in further arguments. Use of `as_data_frame()` is purely to reduce the output shown in the console. You do not need to call it. ```{r} library(dplyr) select(as_data_frame(warpbreaks), breaks, wool) ``` `dplyr` is more elegant if you use it with pipes. This example, is the same as the previous one, except that the data frame is piped to `select()`. ```{r} library(dplyr) warpbreaks %>% as_data_frame %>% select(breaks, wool) ``` ## Standard evaluation selection with `select_()` `select()` should only be used interactively (at the R console). For programmatic use of R (that is, most of the time), you should use the standard-evaluation version, `select_()`. This is described further in the (presumably ironically named) [Non-standard evaluation](https://cran.r-project.org/web/packages/dplyr/vignettes/nse.html) vignette. The preferred way of calling `select_()` is by passing formulae. That is, write the same thing as with `select()`, but prefix the names with a tilde (`~`). This example gives the same result as the previous one. ```{r} library(dplyr) warpbreaks %>% as_data_frame %>% select_(~ breaks, ~ wool) ``` You can also wrap the column names in calls to [`quote()`](https://www.rdocumentation.org/packages/base/topics/quote). This is the same result again. ```{r} library(dplyr) warpbreaks %>% as_data_frame %>% select_(quote(breaks), quote(wool)) ``` You can also pass the column names as strings. Again, this is the same result. ```{r} library(dplyr) warpbreaks %>% as_data_frame %>% select_("breaks", "wool") ``` If you are using strings with `select_()`, it is usually easier to pass a single character vector rather than many strings in individual arguments. Pass the character vector to `.dots`. This is the same result yet again. ```{r} library(dplyr) warpbreaks %>% as_data_frame %>% select_(.dots = c("breaks", "wool")) ``` ## Renaming columns with `rename()` and `rename_()` Columns can be renamed by calling `rename()` with named arguments. All columns are kept. That is, columns that aren't mentioned are simply left untouched. ```{r} library(dplyr) warpbreaks %>% as_data_frame %>% rename() ``` As with column selection, it is better to use the standard evaluation version. Passing columns as formulae is prefered. ```{r} library(dplyr) warpbreaks %>% as_data_frame %>% rename_(number_of_breaks_per_loom = ~ breaks, type_of_wool = ~ wool) ``` `quote()`d column names are supported. ```{r} library(dplyr) warpbreaks %>% as_data_frame %>% rename_(number_of_breaks_per_loom = quote(breaks), type_of_wool = quote(wool)) ``` As are strings. ```{r} library(dplyr) warpbreaks %>% as_data_frame %>% rename_(number_of_breaks_per_loom = "breaks", type_of_wool = "wool") ``` Or a character vector passed to `.dots`. ```{r} library(dplyr) warpbreaks %>% as_data_frame %>% rename_(.dots = c(number_of_breaks_per_loom = "breaks", type_of_wool = "wool")) ``` ## Where to find help on selection helper functions They are documented on the [`?select_helpers`](https://www.rdocumentation.org/packages/dplyr/topics/select_helpers) page.