首页 > 解决方案 > 将两个数据框列与长度为 2 的向量匹配,以获取 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。

提前致谢!

标签: r

解决方案


您可以使用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

推荐阅读