如何在dplyr 0.7.0中将列名指定为字符元素?

如何在dplyr 0.7.0中将列名指定为字符元素?,r,dplyr,R,Dplyr,借用: 库(dplyr) df根据aosmith的链接,我们可以找到lukeA的答案。。。针对该用例修改的是: library(dplyr) library(rlang) df <- data.frame( color = c("blue", "black", "blue", "blue", "black"), value = 1:5) # In interactive mode column_name <- rlang::sym("color") df %>%

借用:

库(dplyr)

df根据aosmith的链接,我们可以找到lukeA的答案。。。针对该用例修改的是:

library(dplyr)
library(rlang)
df <- data.frame( 
  color = c("blue", "black", "blue", "blue", "black"), 
  value = 1:5)

# In interactive mode
column_name <- rlang::sym("color")
df %>% filter((!!column_name) == "blue")

# In a function
filter_col <- function(df, col_name_as_string, val){
  col_name <- rlang::sym(col_name_as_string)
  df %>% filter((!!col_name) == val)
}
filter_col(df, 'color', 'blue')
库(dplyr)
图书馆(rlang)

df根据aosmith的链接,我们可以找到lukeA的答案。。。针对该用例修改的是:

library(dplyr)
library(rlang)
df <- data.frame( 
  color = c("blue", "black", "blue", "blue", "black"), 
  value = 1:5)

# In interactive mode
column_name <- rlang::sym("color")
df %>% filter((!!column_name) == "blue")

# In a function
filter_col <- function(df, col_name_as_string, val){
  col_name <- rlang::sym(col_name_as_string)
  df %>% filter((!!col_name) == val)
}
filter_col(df, 'color', 'blue')
库(dplyr)
图书馆(rlang)

df您需要rlang提供的
sym
作为字符串变量。请参阅,例如,对于作为字符串的变量,您需要从rlang获得
sym
。参见,例如。,
column_name <- "color"
col_name <- quo(column_name) # <- something else goes here
df %>% filter((!!col_name) == "blue")
library(dplyr)
library(rlang)
df <- data.frame( 
  color = c("blue", "black", "blue", "blue", "black"), 
  value = 1:5)

# In interactive mode
column_name <- rlang::sym("color")
df %>% filter((!!column_name) == "blue")

# In a function
filter_col <- function(df, col_name_as_string, val){
  col_name <- rlang::sym(col_name_as_string)
  df %>% filter((!!col_name) == val)
}
filter_col(df, 'color', 'blue')