什么是'dplyr::select_all'而不是'dplyr::rename_all'的用例?

什么是'dplyr::select_all'而不是'dplyr::rename_all'的用例?,r,dplyr,R,Dplyr,dplyr包有两个函数,都可以用来操作列的名称,例如 dplyr::rename_all(mtcars, toupper) 及 它们似乎是在中同时引入的,它们的实现与rename\u几乎相同。all将参数strict=TRUE传递给它们都调用的公共函数。此参数的结果是验证是否包含重命名函数。因此,我看到的唯一不同是 select_all(mtcars) 是有效的,但是 rename_all(mtcars) 事实并非如此。然而,据我所知,前者只是一个身份函数,例如 > identica

dplyr包有两个函数,都可以用来操作列的名称,例如

dplyr::rename_all(mtcars, toupper)

它们似乎是在中同时引入的,它们的实现与
rename\u几乎相同。all
将参数
strict=TRUE
传递给它们都调用的公共函数。此参数的结果是验证是否包含重命名函数。因此,我看到的唯一不同是

select_all(mtcars)
是有效的,但是

rename_all(mtcars)
事实并非如此。然而,据我所知,前者只是一个身份函数,例如

> identical(mtcars, select_all(mtcars))
[1] TRUE

那么,
select\u all
功能的意义是什么呢有人能提供一个示例用例来演示它的实用性吗?

首先想到的是在函数中使用它们时,您可能不知道是否提供了重命名函数。当然,您可以使用rename all并捕获错误,但最好是泛化dplyr中较新更改的要点之一是完成其作为查询生成器的角色。select_all()类似于select(*)。在许多情况下,这将来自一个数据库表,而不是现有的数据帧,然后该结果将与另一个表联接。@Elin好的,这是有意义的。不幸的是,本文仅给出了从
data.frame
对象重命名和子集列的示例。
> identical(mtcars, select_all(mtcars))
[1] TRUE