dplyr everything() 参数字符串 select_

dplyr everything() argument string select_

我需要在 dplyr 中使用 select 的带下划线的字符串版本以及 everything() 参数。它不工作。

library(dplyr)
#this works just fine
select(iris, Species, everything()) %>% head()

  Species Sepal.Length Sepal.Width Petal.Length Petal.Width
1  setosa          5.1         3.5          1.4         0.2
2  setosa          4.9         3.0          1.4         0.2
3  setosa          4.7         3.2          1.3         0.2
4  setosa          4.6         3.1          1.5         0.2
5  setosa          5.0         3.6          1.4         0.2
6  setosa          5.4         3.9          1.7         0.4

#this fails
select_(iris, "Species", everything()) %>% head()

Error: No tidyselect variables were registered

我是否缺少 everything 的带下划线的参数?

_ 方法即将弃用。相反,我们可以使用 rlang 中的 sym 将其转换为符号,然后计算

library(dplyr)
select(iris, !!rlang::sym("Species"), everything()) %>%
          head()
#     Species Sepal.Length Sepal.Width Petal.Length Petal.Width
#1  setosa          5.1         3.5          1.4         0.2
#2  setosa          4.9         3.0          1.4         0.2
#3  setosa          4.7         3.2          1.3         0.2
#4  setosa          4.6         3.1          1.5         0.2
#5  setosa          5.0         3.6          1.4         0.2
#6  setosa          5.4         3.9          1.7         0.4