2

我需要与参数一起使用带下划线select的字符串版本。它不工作。dplyreverything()

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我遗漏的强调论点?

4

1 回答 1

3

_方法已被弃用。相反,我们可以使用symfromrlang将其转换为符号,然后计算

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
于 2017-11-22T17:02:46.847 回答