在dplyr中重命名列时的整齐计算 [英] Tidy evaluation when renaming columns in dplyr

查看:14
本文介绍了在dplyr中重命名列时的整齐计算的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用rename()dplyr v0.7.0中发布的整齐的求值语法一起动态重命名数据帧中的单个列。

?rename帮助页中,我找到了重命名2列的以下示例。

library(dplyr)

vars <- c(var1 = "cyl", var2 ="am")
rename(mtcars, !!vars) %>% head(1)

>           mpg var1 disp  hp drat   wt  qsec vs var2 gear carb
> Mazda RX4  21    6  160 110  3.9 2.62 16.46  0    1    4    4

但是,我注意到不能使用相同的语法重命名单个列。

vars <- c(var1 = "cyl")
rename(mtcars, !!vars) %>% head(1)

> Error: All arguments must be named

但是,当我将同一列重命名两次时,它仍然起作用。

vars <- c(var1 = "cyl", var1 = "cyl")
rename(mtcars, !!vars) %>% head(1)

>           mpg var1 disp  hp drat   wt  qsec vs am gear carb
> Mazda RX4  21    6  160 110  3.9 2.62 16.46  0  1    4    4

为什么会发生这种情况?正确的语法是什么?

推荐答案

使用!!!进行评估

rename(mtcars, !!!vars) %>% 
     head(1)
#          mpg var1 disp  hp drat   wt  qsec vs am gear carb
#Mazda RX4  21    6  160 110  3.9 2.62 16.46  0  1    4    4

这篇关于在dplyr中重命名列时的整齐计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆