R语言【dplyr】——使用 relocate() 更改列的位置,其语法与 select() 相同,便于一次移动多个列块

Package dplyr version 1.1.4


Parameters

R 复制代码
relocate(.data, ..., .before = NULL, .after = NULL)

参数【.data】:数据集、数据集扩展(如 tibble)或 lazy data frames(如来自 dbplyrdtplyr 的数据集)。

参数【...】:<tidy-select> 要移动的列。

参数【.before,.after】:<tidy-select> 通过参数【...】选择的列的目的地。两者都不提供会将列移动到左侧;同时指定两者则会出错。


Value

与参数【.data】类型相同的对象。输出具有以下属性:

  • 行不会受到影响。
  • 输出中会出现相同的列,但(通常)位置不同,可能还会重命名。
  • 数据集属性保留不变。
  • 分组不受影响。

Examples

1. relocate() 默认将列放到首列

R 复制代码
df <- tibble(a = 1, b = 1, c = 1, d = "a", e = "a", f = "a")
df

# A tibble: 1 × 6
      a     b     c d     e     f    
  <dbl> <dbl> <dbl> <chr> <chr> <chr>
1     1     1     1 a     a     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 

2. relocate() 的参数【.after】将列放到该列后面

R 复制代码
df <- tibble(a = 1, b = 1, c = 1, d = "a", e = "a", f = "a")
df

# A tibble: 1 × 6
      a     b     c d     e     f    
  <dbl> <dbl> <dbl> <chr> <chr> <chr>
1     1     1     1 a     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(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

3. relocate() 的参数【.before】将列放到该列前面

R 复制代码
df <- tibble(a = 1, b = 1, c = 1, d = "a", e = "a", f = "a")
df

# A tibble: 1 × 6
      a     b     c 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 

4. relocate() 在改变列的位置的同时,还可以重命名列名

R 复制代码
df <- tibble(a = 1, b = 1, c = 1, d = "a", e = "a", f = "a")
df

# A tibble: 1 × 6
      a     b     c d     e     f    
  <dbl> <dbl> <dbl> <chr> <chr> <chr>
1     1     1     1 a     a     a


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   

5. relocate() 通过变量的类型选择列

R 复制代码
df <- tibble(a = 1, b = 1, c = 1, d = "a", e = "a", f = "a")
df

# A tibble: 1 × 6
      a     b     c d     e     f    
  <dbl> <dbl> <dbl> <chr> <chr> <chr>
1     1     1     1 a     a     a


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

6. relocate() 通过其他的选择方法挑选列

R 复制代码
df <- tibble(a = 1, b = 1, c = 1, d = "a", e = "a", f = "a")
df

# A tibble: 1 × 6
      a     b     c d     e     f    
  <dbl> <dbl> <dbl> <chr> <chr> <chr>
1     1     1     1 a     a     a


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  

7. 在调动多列的同时使用了参数【.after,.before】,列会立即排在选择列的前/后

R 复制代码
df2 <- tibble(a = 1, b = "a", c = 1, d = "a")
df2

# A tibble: 1 × 4
      a b         c d    
  <dbl> <chr> <dbl> <chr>
1     1 a         1 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   
相关推荐
临床数据科学和人工智能兴趣组2 天前
网络爬虫(Web Scraping)是一种用于自动提取网页内容的技术
r语言·r语言-4.2.1
生态学者2 天前
Ecological Indicators | 机场鸟调的新方法:用 AWM-PC1 读懂干扰梯度下的鸟类群落
人工智能·算法·r语言·微信公众平台
临床数据科学和人工智能兴趣组2 天前
运用rvest包进行数据爬虫
r语言·r语言-4.2.1
霸道流氓气质3 天前
基于本地 PaddleOCR 的 PDF 文字识别完整技术文档
开发语言·r语言·pdf
临床数据科学和人工智能兴趣组3 天前
SQL专为数据操作而设计,能够高效执行复杂的查询、筛选、排序、分组等操作
r语言·r语言-4.2.1
青春不败 177-3266-05204 天前
基于R、Python的Copula变量相关性分析及AI大模型应用
人工智能·python·r语言·贝叶斯·统计学·copula
统计学小王子5 天前
分类模型评价指标——R语言(数学建模常用)
数学建模·分类·r语言
Biotree_20256 天前
Cell Death Dis.(IF=12.2)|厦门大学徐兵教授团队解锁滤泡性淋巴瘤治疗新策略:PI3Kδ与PPARα双靶向重塑代谢激活FoxO1
r语言
深兰科技6 天前
深兰科技亮相天津医疗器械创新生态大会,DeepAgent智能体赋能医疗医美并签约天津OPC项目
人工智能·科技·r语言·symfony·视觉大模型·深兰科技·deepagent智能体
生态学者6 天前
Journal of Applied Ecology | 华南植物园王法明研究员团队揭示加纳红树林蓝碳储量及其环境调控机制
大数据·r语言·微信公众平台