首页 > 解决方案 > 如何将数据框形式的条件传递给 dplyr::filter

问题描述

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

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

我想通过条件来过滤我的数据。

mtcars %in% filter (???)

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

标签: rdplyr

解决方案


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

mtcars_filtered <- inner_join(mtcars, cond)

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

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


推荐阅读