rename_if()
、 rename_at()
和 rename_all()
已被 rename_with()
取代。匹配的 select 语句已被 select()
+ rename_with()
的组合取代。作为参数传递给 select()
或 rename_with()
的任何谓词函数都必须包装在 where()
中。
这些函数已被取代,因为 mutate_if()
和朋友已被 across()
取代。 select_if()
和 rename_if()
已经使用整齐选择,因此它们不能被 across()
替换,而是我们需要一个新函数。
用法
select_all(.tbl, .funs = list(), ...)
rename_all(.tbl, .funs = list(), ...)
select_if(.tbl, .predicate, .funs = list(), ...)
rename_if(.tbl, .predicate, .funs = list(), ...)
select_at(.tbl, .vars, .funs = list(), ...)
rename_at(.tbl, .vars, .funs = list(), ...)
参数
- .tbl
-
tbl
对象。 - .funs
-
函数
fun
、 purrr 样式 lambda~ fun(.)
或任一形式的列表。 - ...
-
.funs
中函数调用的附加参数。这些仅在 tidy dots 支持下评估一次。 - .predicate
-
应用于列或逻辑向量的谓词函数。选择
.predicate
为或返回TRUE
的变量。该参数传递给rlang::as_function()
,因此支持quosure-style lambda 函数和表示函数名称的字符串。 - .vars
-
由
vars()
生成的列列表、列名称的字符向量、列位置的数值向量或NULL
。
例子
mtcars <- as_tibble(mtcars) # for nicer printing
mtcars %>% rename_all(toupper)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP DRAT WT QSEC VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# ->
mtcars %>% rename_with(toupper)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP DRAT WT QSEC VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# NB: the transformation comes first in rename_with
is_whole <- function(x) all(floor(x) == x)
mtcars %>% rename_if(is_whole, toupper)
#> # A tibble: 32 × 11
#> mpg CYL disp HP drat wt qsec VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# ->
mtcars %>% rename_with(toupper, where(is_whole))
#> # A tibble: 32 × 11
#> mpg CYL disp HP drat wt qsec VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
mtcars %>% rename_at(vars(mpg:hp), toupper)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# ->
mtcars %>% rename_with(toupper, mpg:hp)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# You now must select() and then rename
mtcars %>% select_all(toupper)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP DRAT WT QSEC VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# ->
mtcars %>% rename_with(toupper)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP DRAT WT QSEC VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# Selection drops unselected variables:
mtcars %>% select_if(is_whole, toupper)
#> # A tibble: 32 × 6
#> CYL HP VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 6 110 0 1 4 4
#> 2 6 110 0 1 4 4
#> 3 4 93 1 1 4 1
#> 4 6 110 1 0 3 1
#> 5 8 175 0 0 3 2
#> 6 6 105 1 0 3 1
#> 7 8 245 0 0 3 4
#> 8 4 62 1 0 4 2
#> 9 4 95 1 0 4 2
#> 10 6 123 1 0 4 4
#> # ℹ 22 more rows
# ->
mtcars %>% select(where(is_whole)) %>% rename_with(toupper)
#> # A tibble: 32 × 6
#> CYL HP VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 6 110 0 1 4 4
#> 2 6 110 0 1 4 4
#> 3 4 93 1 1 4 1
#> 4 6 110 1 0 3 1
#> 5 8 175 0 0 3 2
#> 6 6 105 1 0 3 1
#> 7 8 245 0 0 3 4
#> 8 4 62 1 0 4 2
#> 9 4 95 1 0 4 2
#> 10 6 123 1 0 4 4
#> # ℹ 22 more rows
mtcars %>% select_at(vars(-contains("ar"), starts_with("c")), toupper)
#> # A tibble: 32 × 10
#> MPG CYL DISP HP DRAT WT QSEC VS AM CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4
#> # ℹ 22 more rows
# ->
mtcars %>%
select(!contains("ar") | starts_with("c")) %>%
rename_with(toupper)
#> # A tibble: 32 × 10
#> MPG CYL DISP HP DRAT WT QSEC VS AM CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4
#> # ℹ 22 more rows
相关用法
- R dplyr select 使用列的名称和类型保留或删除列
- R dplyr setops 设置操作
- R dplyr slice 使用行的位置对行进行子集化
- R dplyr sample_n 从表中采样 n 行
- R dplyr starwars 星球大战人物
- R dplyr storms 风暴追踪数据
- R dplyr summarise_all 汇总多列
- R dplyr summarise 将每组汇总为一行
- R dplyr group_trim 修剪分组结构
- R dplyr copy_to 将本地数据帧复制到远程src
- R dplyr consecutive_id 为连续组合生成唯一标识符
- R dplyr row_number 整数排名函数
- R dplyr band_members 乐队成员
- R dplyr mutate-joins 变异连接
- R dplyr nth 从向量中提取第一个、最后一个或第 n 个值
- R dplyr coalesce 找到第一个非缺失元素
- R dplyr group_split 按组分割 DataFrame
- R dplyr mutate 创建、修改和删除列
- R dplyr order_by 用于排序窗口函数输出的辅助函数
- R dplyr context 有关“当前”组或变量的信息
- R dplyr percent_rank 比例排名函数
- R dplyr recode 重新编码值
- R dplyr desc 降序
- R dplyr between 检测值落在指定范围内的位置
- R dplyr cumall 任何、全部和平均值的累积版本
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Select and rename a selection of variables。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。