过滤两列等于相同值的数据帧

时间:2018-03-13 12:25:25

标签: r dplyr

有办法还是写作

filter(dataDF, column1 == 'myvalue' & column2 == 'myvalue')

无需写出myvalue两次?

3 个答案:

答案 0 :(得分:4)

您可以使用dplyr::filter_at

filter_at(dataDF, c("column1", "column2"), all_vars(. == 'myvalue'))

答案 1 :(得分:2)

通过你的评论,

  嗯,比我的好。我想要做的原因是1.这样,如果我需要在以后编辑“myvalue”,我只需要在一次更改它和2.使代码尽可能高效和简短。您的解决方案解决了数字1.但不是数字2

您可以将'myValue'放在变量中并使用它。这样你只需要在一个地方更新/改变它。

sudo snap install pycharm-community --classic

答案 2 :(得分:0)

一种笨重的基础R解决方案

df[do.call(`&`, lapply(df[, c('column1', 'column2')], `==`, myvalue)), ]