首页 > 解决方案 > 在 rename_all() 中传递多个参数

问题描述

要整理列名,有没有办法传递多个参数rename_all()

示例:我想清理以下列名称,方法是将它们全部更改为更低,删除,并用using.替换空格_rename_all()

> colnames(tibble("COLUMN 1." = (1:3), "column 2." = (1:3)))
[1] "COLUMN 1." "column 2."

我可以这样做:

> tibble("COLUMN 1." = (1:3), "column 2." = (1:3)) %>% 
+     rename_all(tolower) %>% 
+     rename_all(~gsub("\\ ", "_", .x)) %>% 
+     rename_all(~gsub("\\.", "", .x))
# A tibble: 3 x 2
  column_1 column_2
     <int>    <int>
1        1        1
2        2        2
3        3        3

但是有没有办法用一个电话rename_all()而不是 3 来做到这一点?

标签: rdplyr

解决方案


您还应该能够rename_all()调用中使用管道来执行此操作:

library(tidyverse)

tibble("COLUMN 1." = (1:3), "column 2." = (1:3)) %>% 
  rename_all(~ tolower(.) %>% str_remove(., '\\.') %>% str_replace(., ' ', '_'))


推荐阅读