當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


R dtplyr unite.dtplyr_step 通過將字符串粘貼在一起將多列合並為一列。

這是 tidyr unite() 泛型的方法。

用法

# S3 method for dtplyr_step
unite(data, col, ..., sep = "_", remove = TRUE, na.rm = FALSE)

參數

data

一個 DataFrame 。

col

新列的名稱,作為字符串或符號。

該參數通過表達式傳遞並支持quasiquotation(您可以取消引用字符串和符號)。該名稱是從帶有 rlang::ensym() 的表達式中捕獲的(請注意,這種符號不代表實際對象的接口現在在 tidyverse 中不鼓勵使用;我們在這裏支持它是為了向後兼容)。

...

< tidy-select > 要合並的列

sep

值之間使用的分隔符。

remove

如果 TRUE ,則從輸出數據幀中刪除輸入列。

na.rm

如果是 TRUE ,則在合並每個值之前將刪除缺失值。

例子

library(tidyr)

df <- lazy_dt(expand_grid(x = c("a", NA), y = c("b", NA)))
df
#> Source: local data table [4 x 2]
#> Call:   `_DT41`
#> 
#>   x     y    
#>   <chr> <chr>
#> 1 a     b    
#> 2 a     NA   
#> 3 NA    b    
#> 4 NA    NA   
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results

df %>% unite("z", x:y, remove = FALSE)
#> Source: local data table [4 x 3]
#> Call:   setcolorder(copy(`_DT41`)[, `:=`(z = paste(x, y, sep = "_"))], 
#>     c("z", "x", "y"))
#> 
#>   z     x     y    
#>   <chr> <chr> <chr>
#> 1 a_b   a     b    
#> 2 a_NA  a     NA   
#> 3 NA_b  NA    b    
#> 4 NA_NA NA    NA   
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results

# Separate is almost the complement of unite
df %>%
  unite("xy", x:y) %>%
  separate(xy, c("x", "y"))
#> Source: local data table [4 x 2]
#> Call:   copy(`_DT41`)[, `:=`(xy = paste(x, y, sep = "_"))][, `:=`(c("x", 
#> "y"), NULL)][, `:=`(c("x", "y"), tstrsplit(xy, split = "[^[:alnum:]]+"))][, 
#>     `:=`("xy", NULL)]
#> 
#>   x     y    
#>   <chr> <chr>
#> 1 a     b    
#> 2 a     NA   
#> 3 NA    b    
#> 4 NA    NA   
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results
# (but note `x` and `y` contain now "NA" not NA)
源代碼:R/unite.R

相關用法


注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Unite multiple columns into one by pasting strings together.。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。