r - 如何将数据帧形式的条件传递到 dplyr::filter

标签 r dplyr

我有一个条件列表,例如:

cond = data.frame(cyl=4, vs=0, am=1)

我想传递条件来过滤我的数据。

mtcars %in% filter (???)

有什么办法可以做到这一点吗?我希望解决方案是可编程的,以便我可以将数据框(或列表)形式的条件列表传递给任何数据集。 非常感谢!

最佳答案

如果您的条件始终“等于”(即您想要 cyl == 4vs==0 等)并且始终“与”在一起,那么您只需对数据使用 inner_join 即可。

mtcars_filtered <- inner_join(mtcars, cond)

这还有一个优点,即您可以通过向 cond 表添加适当的行来创建更复杂的联接。

如果你想要更微妙的条件,你将需要进行非标准评估。这会让你的眼睛从你的头上掉下来。祝你好运!

关于r - 如何将数据帧形式的条件传递到 dplyr::filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50355442/

相关文章:

r - stan - 向量化困难

r - 是否可以使用 RStudio 在 OSX 上配置 R 图形事件处理?

r - 在第一个 data.frame 中提取某些值在第二个 data.frame 中找不到的行

r - 我可以使用 `across` 或 `{purrr}` 语法来缩短和简化我的 dplyr 代码吗?

r - R 0 到 5 的标准化

r - 如何创建具有外部依赖项 libxml2 的 CRAN 就绪 R 包

R 循环花费的时间太长,我该如何以另一种方式解决这个问题?

r - R 中带有rep 和 dplyr 管道的 mapply 的奇怪行为

r - 每次根据前一列对匹配模式的所有列进行变异

r - Dplyr加入: NA match to any