dplyr everything()参数字符串select_

时间:2017-11-22 16:54:21

标签: r dplyr tidyselect

我需要在select中使用dplyr的下划线字符串版本以及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()
  

错误:没有注册tidyselect变量

我遗漏了everything的强调论点吗?

1 个答案:

答案 0 :(得分:3)

_方法已被弃用。相反,我们可以使用sym中的rlang将其转换为符号,然后评估

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