【发布时间】:2019-01-21 19:41:08
【问题描述】:
假设我有一个条件列表:
input_list <- list(Species = "setosa",
Petal.Width = 0.2)
我可以把这个列表变成一个字符串:
x <- map(input_list, ~ paste0( " == ", "'", .[[1]], "'"))
conditions <- paste(names(x), x, collapse = ", ")
conditions
> [1] "Species == 'setosa', Petal.Width == '0.2'"
我想将此字符串作为过滤条件传递:
iris %>% filter(rlang::sym(conditions))
但不幸的是我收到了一个错误
filter_impl(.data, quo) 中的错误: 参数 2 过滤条件不计算为逻辑向量
【问题讨论】:
-
dplyr::right_join(iris, as.data.frame(input_list))? -
这是什么背景?您是否打算将保存为
conditions的整个字符串作为函数的参数? -
它是闪亮应用程序的一部分。用户的选择被整理成一个列表 (
input_list),并返回一个应用了过滤条件的数据框