Convenience function to paste together multiple columns into one.
Analogous to tidyr::unite
.
unite(.data, united_colname, ..., sep = "_", remove = FALSE, na2char = FALSE)
.data | A data frame. |
---|---|
united_colname | The name of the new column, string only. |
... | A selection of columns. If want to select all columns, pass "" to the parameter. See example. |
sep | Separator to use between values. |
remove | If |
na2char | If |
A data.table
#> 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