我想选择该行的两列满足两个条件的行。第二个条件嵌套在第一个条件中。例如,以下代码给出了我想要做的事情
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()
这样的函数吗?就像我们选择行时通常所做的那样。所以这样可以节省一些时间来更改变量名称。
答案 0 :(得分:1)
如果您想保留df1
的列名,可以使用df1
切换selection
,然后使用inner_join
或right_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