unite
Unite multiple columns into one.
Convenience function to paste together multiple columns into one.
Usage
unite(data, col, ..., sep = "_", remove = TRUE)
Arguments
- data
A data frame.
- col
The name of the new column, as a string or symbol.
This argument is passed by expression and supports quasiquotation (you can unquote strings and symbols). The name is captured from the expression with
rlang::ensym()
(note that this kind of interface where symbols do not represent actual objects is now discouraged in the tidyverse; we support it here for backward compatibility).- ...
A selection of columns. If empty, all variables are selected. You can supply bare variable names, select all variables between x and z with
x:z
, exclude y with-y
. For more options, see thedplyr::select()
documentation. See also the section on selection rules below.- sep
Separator to use between values.
- remove
If
TRUE
, remove input columns from output data frame.
Rules for selection
Arguments for selecting columns are passed to
tidyselect::vars_select()
and are treated specially. Unlike other
verbs, selecting functions make a strict distinction between data
expressions and context expressions.
A data expression is either a bare name like
x
or an expression likex:y
orc(x, y)
. In a data expression, you can only refer to columns from the data frame.Everything else is a context expression in which you can only refer to objects that you have defined with
<-
.
For instance, col1:col3
is a data expression that refers to data
columns, while seq(start, end)
is a context expression that
refers to objects from the contexts.
If you really need to refer to contextual objects from a data
expression, you can unquote them with the tidy eval operator
!!
. This operator evaluates its argument in the context and
inlines the result in the surrounding function call. For instance,
c(x, !! x)
selects the x
column within the data frame and the
column referred to by the object x
defined in the context (which
can contain either a column name as string or a column position).
See Also
separate()
, the complement.
Examples
# NOT RUN {
library(dplyr)
unite_(mtcars, "vs_am", c("vs","am"))
# Separate is the complement of unite
mtcars %>%
unite("vs_am", vs, am) %>%
separate(vs_am, c("vs", "am"))
# }