当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。