使用准报价评估条件
Evaluate condition using quasiquotation
我想使用准引用(类似于这个问题 )基于一些 filter_phrase
过滤数据帧 df
。但是,我不想动态设置列,而是想评估整个条件:
library(dplyr)
library(rlang)
df <- data.frame(a = 1:5, b = letters[1:5])
filter_phrase <- "a < 4"
df %>% filter(sym(filter_phrase))
预期输出应如下所示:
> df %>% filter(a < 4)
a b
1 1 a
2 2 b
3 3 c
非常感谢任何帮助。
一个选项是parse_expr
。 'filter_phrase' 是字符串形式的表达式。我们可以用 parse_expr
将它转换为 langauge
class 然后用 (!!
)
求值
library(dplyr)
df %>%
filter(!! rlang::parse_expr(filter_phrase))
# a b
#1 1 a
#2 2 b
#3 3 c
我想使用准引用(类似于这个问题 filter_phrase
过滤数据帧 df
。但是,我不想动态设置列,而是想评估整个条件:
library(dplyr)
library(rlang)
df <- data.frame(a = 1:5, b = letters[1:5])
filter_phrase <- "a < 4"
df %>% filter(sym(filter_phrase))
预期输出应如下所示:
> df %>% filter(a < 4)
a b
1 1 a
2 2 b
3 3 c
非常感谢任何帮助。
一个选项是parse_expr
。 'filter_phrase' 是字符串形式的表达式。我们可以用 parse_expr
将它转换为 langauge
class 然后用 (!!
)
library(dplyr)
df %>%
filter(!! rlang::parse_expr(filter_phrase))
# a b
#1 1 a
#2 2 b
#3 3 c