首页 > 解决方案 > R dplyr 将表达式作为参数传递给函数

问题描述

我有一个简单的愚蠢问题,但很抱歉这么简单。

如何将算术表达式作为函数参数传递?

test_func <- function(data, myexpr){
  data %>% 
    filter(!! myexpr)
}

mtcars %>% 
  test_func(myexpr =  "cyl > 6")

提前致谢

标签: rfunctiondplyrtidyevalnse

解决方案


library(dplyr)

test_func <- function(data, myexpr){
  data %>% 
    filter(eval(parse(text  = myexpr)))
}

mtcars %>% 
  test_func(myexpr =  "cyl > 6")

推荐阅读