Convenience function to paste together multiple columns into one.
Analogous to tidyr::unite.
unite(.data, united_colname, ..., sep = "_", remove = FALSE, na2char = FALSE)A data frame.
The name of the new column, string only.
A selection of columns. If want to select all columns, pass "" to the parameter. See example.
Separator to use between values.
If TRUE, remove input columns from output data frame.
If FALSE, missing values would be merged into NA,
otherwise NA is treated as character "NA". This is different from
tidyr.
A data.table
df <- CJ(x = c("a", NA), y = c("b", NA))
df
#> Key: <x, y>
#> x y
#> <char> <char>
#> 1: <NA> <NA>
#> 2: <NA> b
#> 3: a <NA>
#> 4: a b
# Treat missing value as NA, default
df %>% unite("z", x:y, remove = FALSE)
#> Key: <x, y>
#> x y z
#> <char> <char> <char>
#> 1: <NA> <NA> <NA>
#> 2: <NA> b <NA>
#> 3: a <NA> <NA>
#> 4: a b a_b
# Treat missing value as character "NA"
df %>% unite("z", x:y, na2char = TRUE, remove = FALSE)
#> Key: <x, y>
#> x y z
#> <char> <char> <char>
#> 1: <NA> <NA> NA_NA
#> 2: <NA> b NA_b
#> 3: a <NA> a_NA
#> 4: a b a_b
# the unite has memory, "z" would not be removed in new operations
# here we remove the original columns ("x" and "y")
df %>% unite("xy", x:y,remove = TRUE)
#> z xy
#> <char> <char>
#> 1: NA_NA <NA>
#> 2: NA_b <NA>
#> 3: a_NA <NA>
#> 4: a_b a_b
# Select all columns
iris %>% as.data.table %>% unite("merged_name",".")
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> <num> <num> <num> <num> <fctr>
#> 1: 5.1 3.5 1.4 0.2 setosa
#> 2: 4.9 3.0 1.4 0.2 setosa
#> 3: 4.7 3.2 1.3 0.2 setosa
#> 4: 4.6 3.1 1.5 0.2 setosa
#> 5: 5.0 3.6 1.4 0.2 setosa
#> ---
#> 146: 6.7 3.0 5.2 2.3 virginica
#> 147: 6.3 2.5 5.0 1.9 virginica
#> 148: 6.5 3.0 5.2 2.0 virginica
#> 149: 6.2 3.4 5.4 2.3 virginica
#> 150: 5.9 3.0 5.1 1.8 virginica
#> merged_name
#> <char>
#> 1: 5.1_3.5_1.4_0.2_setosa
#> 2: 4.9_3_1.4_0.2_setosa
#> 3: 4.7_3.2_1.3_0.2_setosa
#> 4: 4.6_3.1_1.5_0.2_setosa
#> 5: 5_3.6_1.4_0.2_setosa
#> ---
#> 146: 6.7_3_5.2_2.3_virginica
#> 147: 6.3_2.5_5_1.9_virginica
#> 148: 6.5_3_5.2_2_virginica
#> 149: 6.2_3.4_5.4_2.3_virginica
#> 150: 5.9_3_5.1_1.8_virginica