dplyr (version 0.4.0)

select: Select/rename variables by name.

Description

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

  • starts_with(x, ignore.case = TRUE): names starts withx
  • ends_with(x, ignore.case = TRUE): names ends inx
  • contains(x, ignore.case = TRUE): selects all variables whose name containsx
  • matches(x, ignore.case = TRUE): selects all variables whose name matches the regular expressionx
  • num_range("x", 1:5, width = 2): selects all variables (numerically) from x01 to x05.
  • one_of("x", "y", "z"): selects variables provided in a character vector.
  • everything(): selects all variables.

To drop variables, use -. You can rename variables with named arguments.

See Also

Other single.table.verbs: arrange, arrange_; filter, filter_; mutate, mutate_, transmute, transmute_; slice, slice_; summarise, summarise_, summarize, summarize_

Examples

Run this code
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"))

# * 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)))

Run the code above in your browser using DataLab