【发布时间】:2014-10-29 18:27:24
【问题描述】:
这很有效(在 Shiny 中非常好用):
filter_(mtcars, "mpg > 24")
还有这个:
filter_(mtcars, "mpg > 24", "disp > 75")
有没有办法让它也能正常工作?
filter_(mtcars, "mpg > 24, disp > 75")
这是一种替代方法
filter_(mtcars, "mpg > 24 & disp > 75")
编辑 1
这可行,但有更好的方法吗?
filter_(mtcars,unlist(strsplit("mpg > 24, disp > 75", ",")))
编辑 2
之前的编辑可能无法按预期工作。相当于如下:
filter_(mtcars,c("mpg > 24", "disp > 75"))
忽略第二个条件
mpg cyl disp hp drat wt qsec vs am gear carb
1 24.4 4 146.7 62 3.69 3.19 20.0 1 0 4 2
2 32.4 4 78.7 66 4.08 2.20 19.5 1 1 4 1
3 30.4 4 75.7 52 4.93 1.61 18.5 1 1 4 2
4 33.9 4 71.1 65 4.22 1.83 19.9 1 1 4 1
5 27.3 4 79.0 66 4.08 1.94 18.9 1 1 4 1
6 26.0 4 120.3 91 4.43 2.14 16.7 0 1 5 2
7 30.4 4 95.1 113 3.77 1.51 16.9 1 1 5 2
【问题讨论】:
-
替代方案 (
&) 恕我直言更好。也更通用,因为您可以使用其他运算符,例如|。 -
filter_(mtcars, c("mpg > 24", "disp > 75"))怎么样?您面临的具体问题是什么? -
你可能是对的@flodel,但我想选择输入是“标准”dplyr 表示法
-
试试
do.call(filter_, c(list(mtcars),unlist(strsplit("mpg > 24, disp > 75", ","))))。我无法测试,因为您没有提供可重现的示例。 -
FWIW 尝试
filter_(mtcars, .dots = c("mpg > 24", "disp > 75"))