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


R dplyr relocate 更改列順序


使用 relocate() 更改列位置,使用與 select() 相同的語法,以便輕鬆一次移動列塊。

用法

relocate(.data, ..., .before = NULL, .after = NULL)

參數

.data

數據幀、數據幀擴展(例如 tibble)或惰性數據幀(例如來自 dbplyr 或 dtplyr)。有關更多詳細信息,請參閱下麵的方法。

...

<tidy-select > 要移動的列。

.before, .after

< tidy-select > ... 選擇的列的目標。兩者都不提供會將列移動到左側;指定兩者都是錯誤的。

.data 類型相同的對象。輸出具有以下屬性:

  • 行不受影響。

  • 相同的列出現在輸出中,但(通常)位於不同的位置,並且可能被重命名。

  • DataFrame 屬性被保留。

  • 團體不受影響。

方法

該函數是泛型函數,這意味著包可以為其他類提供實現(方法)。有關額外參數和行為差異,請參閱各個方法的文檔。

加載的包中當前提供以下方法: dbplyr ( tbl_lazy )、dplyr ( data.frame ) 。

例子

df <- tibble(a = 1, b = 1, c = 1, d = "a", e = "a", f = "a")
df %>% relocate(f)
#> # A tibble: 1 × 6
#>   f         a     b     c d     e    
#>   <chr> <dbl> <dbl> <dbl> <chr> <chr>
#> 1 a         1     1     1 a     a    
df %>% relocate(a, .after = c)
#> # A tibble: 1 × 6
#>       b     c     a d     e     f    
#>   <dbl> <dbl> <dbl> <chr> <chr> <chr>
#> 1     1     1     1 a     a     a    
df %>% relocate(f, .before = b)
#> # A tibble: 1 × 6
#>       a f         b     c d     e    
#>   <dbl> <chr> <dbl> <dbl> <chr> <chr>
#> 1     1 a         1     1 a     a    
df %>% relocate(a, .after = last_col())
#> # A tibble: 1 × 6
#>       b     c d     e     f         a
#>   <dbl> <dbl> <chr> <chr> <chr> <dbl>
#> 1     1     1 a     a     a         1

# relocated columns can change name
df %>% relocate(ff = f)
#> # A tibble: 1 × 6
#>   ff        a     b     c d     e    
#>   <chr> <dbl> <dbl> <dbl> <chr> <chr>
#> 1 a         1     1     1 a     a    

# Can also select variables based on their type
df %>% relocate(where(is.character))
#> # A tibble: 1 × 6
#>   d     e     f         a     b     c
#>   <chr> <chr> <chr> <dbl> <dbl> <dbl>
#> 1 a     a     a         1     1     1
df %>% relocate(where(is.numeric), .after = last_col())
#> # A tibble: 1 × 6
#>   d     e     f         a     b     c
#>   <chr> <chr> <chr> <dbl> <dbl> <dbl>
#> 1 a     a     a         1     1     1
# Or with any other select helper
df %>% relocate(any_of(c("a", "e", "i", "o", "u")))
#> # A tibble: 1 × 6
#>       a e         b     c d     f    
#>   <dbl> <chr> <dbl> <dbl> <chr> <chr>
#> 1     1 a         1     1 a     a    

# When .before or .after refers to multiple variables they will be
# moved to be immediately before/after the selected variables.
df2 <- tibble(a = 1, b = "a", c = 1, d = "a")
df2 %>% relocate(where(is.numeric), .after = where(is.character))
#> # A tibble: 1 × 4
#>   b     d         a     c
#>   <chr> <chr> <dbl> <dbl>
#> 1 a     a         1     1
df2 %>% relocate(where(is.numeric), .before = where(is.character))
#> # A tibble: 1 × 4
#>       a     c b     d    
#>   <dbl> <dbl> <chr> <chr>
#> 1     1     1 a     a    
源代碼:R/relocate.R

相關用法


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