【发布时间】:2021-02-06 04:58:09
【问题描述】:
我有一个关于如何在dbplyr SQL 翻译中使用eval(parse(text=...)) 的问题。
下面的代码完全符合我对dplyr 的要求,使用eval(parse(text=eval_text))
selected_col <- c("wt", "drat")
text <- paste(selected_col, ">3")
implode <- function(..., sep='|') {
paste(..., collapse=sep)
}
eval_text <- implode(text)
mtcars %>% dplyr::filter(eval(parse(text=eval_text)))
但是当我将它放入数据库时,它会返回一条错误消息。我正在寻找任何允许我动态设置列名并使用 or 运算符进行过滤的解决方案。
db <- tbl(con, "mtcars") %>%
dplyr::filter(eval(parse(eval_text)))
db <- collect(db)
谢谢!
【问题讨论】: