过滤条件嵌套在多个列上

时间:2017-10-27 00:10:57

标签: r dplyr tidyverse

我想选择该行的两列满足两个条件的行。第二个条件嵌套在第一个条件中。例如,以下代码给出了我想要做的事情

library(tidyverse)
df1 <- data.frame(group1 = c(rep("A",3),rep("B",3)),
                  group2 = rep(c(1:3),2),
                  value = 1:6)
df1
selection <- data.frame(G1=c("A","B"),G2=c(2,1))
selection
left_join(selection,df1,by=c("G1"="group1","G2"="group2"))

我在这里使用了left_join()功能。我想知道我可以使用filter()这样的函数吗?就像我们选择行时通常所做的那样。所以这样可以节省一些时间来更改变量名称。

1 个答案:

答案 0 :(得分:1)

如果您想保留df1的列名,可以使用df1切换selection,然后使用inner_joinright_join

inner_join(df1,selection,by=c("group1"="G1","group2"="G2"))

#  group1 group2 value
#1      A      2     2
#2      B      1     4
right_join(df1,selection,by=c("group1"="G1","group2"="G2"))

#  group1 group2 value
#1      A      2     2
#2      B      1     4