【发布时间】:2019-02-16 02:32:25
【问题描述】:
我正在尝试将具有多个参数的过滤器作为字符串移交给函数内的 dplyr::filter。到目前为止我看到的答案都是关于单个过滤器参数,而不是多个。
例子:
myfil <- function(df, fil) {
quo_fil <- enquo(fil)
df <- filter(df, !! quo_fil)
df
}
set.seed(25)
df <- data.frame(a = sample(10, 10), b = sample(10, 10), c = sample(10, 10))
#works
filter(df, a > 3 & b > 2 & c < 8)
a b c
1 5 4 1
2 7 10 5
3 9 5 2
4 6 6 3
# does not work
f <- "a > 3 & b > 2 & c < 8"
myfil(df, f)
【问题讨论】:
-
不知道如何解决这个问题,但如果我们能找到一种不将信息存储在字符串中的方法,也许有一种解决方法?字符串是如何生成的?