Convenience function to paste together multiple columns into one.
unite(data, col, ..., sep = "_", remove = TRUE)
A data frame.
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::quo_name()
(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 the dplyr::select()
documentation. See also
the section on selection rules below.
Separator to use between values.
If TRUE
, remove input columns from output data frame.
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
like x:y
or c(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).
separate()
, the complement.
# 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"))
# }
Run the code above in your browser using DataLab