有没有办法在dplyr中使用字符串变量作为过滤器参数?例如:
filter(iris,Sepal.Length > 6)
将替换为
string <- 'Sepal.Length > 6'
filter(iris,string)
基本上,我正在寻找整个过滤器字符串作为变量,因为我正在实际创建过滤器字符串。谢谢你的帮助。
答案 0 :(得分:16)
如果您想使用字符串参数进行过滤,则需要使用filter_()
代替filter()
string <- 'Sepal.Length > 6'
filter_(iris, string)
另请注意,建议在编程时使用*_()
函数。
答案 1 :(得分:0)
这是我发现在新的tidyval中有效的唯一方法:
> s = "A<3"
> data.frame(A=1:10, B=1:10) %>% filter(eval(str2expression(s)))
A B
1 1 1
2 2 2
但是,我还没有弄清楚how to do this with multiple conditions。