将两个数据帧列匹配到长度为2的向量,以获取r中匹配行中的值

时间:2018-05-05 16:18:44

标签: r

这是我关于stackoverflow的第一个问题, 在这里。

我的数据框看起来像 -

data.frame1<- data.frame("ID" = c(1,2,3,4,5), "Col1" = c(1,4,12,15,6), "Col2"= c(3,6,2,4,1))

然后我有两个值

Value1 <- 4
Value2 <- 6

我想为(col1,col2)中的每一对检查(value1,value2)以查看是否存在匹配。

如果匹配,我想返回ID号,所以在示例中 - 它将返回2,如果没有匹配,我希望它返回NA。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以使用which

with(data.frame1, ifelse(idx <- Col1 == Value1 & Col2 == Value2, which(idx), NA))
# [1] NA  2 NA NA NA

或者,如果您只想返回匹配的索引:

with(data.frame1, which(Col1 == Value1 & Col2 == Value2))
# [1] 2