代码之家  ›  专栏  ›  技术社区  ›  Nick Criswell

dplyr everything()参数字符串选择_

  •  2
  • Nick Criswell  · 技术社区  · 7 年前

    我需要使用带下划线的字符串版本 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 回复  |  直到 6 年前
        1
  •  3
  •   akrun    7 年前

    这个 _ 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