有时,当使用dplyr
一个列名的字符向量时,该字符向量将用于对数据进行操作,例如:
cols_of_interest <- c("Petal.Width", "Petal.Length")
在dplyr
0.5.0 及更早版本中,推荐的解决此问题的方法是使用verb_
下划线结构,如下所示:
library("tidyverse")
my_cols <- c("Petal.Width", "Petal.Length")
iris %>%
select_(.dots = my_cols)
verb_
现在不推荐使用这些函数,取而代之的是rlang
库引入的新的 tidy 评估框架 (dplyr.tidyverse.org/articles/programming.html)。
从dplyr
0.7.0 开始,以下作品无需任何特殊调整:
library("tidyverse")
# library("rlang")
my_cols <- c("Petal.Width", "Petal.Length")
iris %>%
select(my_cols)
请注意,在 的开发版本中dplyr
,情况并非如此
动机
在闪亮的应用程序中选择列是一个很好的示例用例,这就是使用verb_
符号的方法
library("shiny")
library("tidyverse")
library("DT")
shinyApp(
ui = fluidPage(
selectInput("cols_to_show",
"Columns to show",
choices = colnames(iris),
multiple = TRUE),
dataTableOutput("verb_table")
),
server = function(input, output){
output$verb_table <- renderDataTable({
iris %>%
select_(.dots = input$cols_to_show)
})
}
)