R 在一列矩阵中同时匹配两个不同的值

R 在一列矩阵中同时匹配两个不同的值,r,R,请帮助我查找同时存在两个不同值的列索引 library(combinat) y = c(4.7378092,0.8278563,2.7577482,0.7261934,3.0687797) m=combn(y,3) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 4.7378092 4.7378092 4.7378092

请帮助我查找同时存在两个不同值的列索引

  library(combinat)
  y = c(4.7378092,0.8278563,2.7577482,0.7261934,3.0687797)
  m=combn(y,3)
       [,1]      [,2]      [,3]      [,4]     [,5]      [,6]      [,7]      [,8]      [,9]     [,10]
[1,] 4.7378092 4.7378092 4.7378092 4.7378092 4.737809 4.7378092 0.8278563 0.8278563 0.8278563 2.7577482
[2,] 0.8278563 0.8278563 0.8278563 2.7577482 2.757748 0.7261934 2.7577482 2.7577482 0.7261934 0.7261934
[3,] 2.7577482 0.7261934 3.0687797 0.7261934 3.068780 3.0687797 0.7261934 3.0687797 3.0687797 3.0687797
我使用的是
,它(m==y[1&2],arr.ind=TRUE)
只返回所提到的
y
变量的值的索引,但我想要给定矩阵的列索引,其中向量
y
的两个值都存在,即列#1,2和3。在返回时,应该有一个包含值(1,2,3)的向量

也许是这样:

which(apply(m,2, function(x) all(y[1:2] %in% x)))

# [1] 1 2 3

m[,apply(m,2, function(x) all(y[1:2] %in% x))]

#           [,1]      [,2]      [,3]
# [1,] 4.7378092 4.7378092 4.7378092
# [2,] 0.8278563 0.8278563 0.8278563
# [3,] 2.7577482 0.7261934 3.0687797

问题还不清楚。你能加上预期的结果吗?是否要获取共享某些值的列的索引?是的,包含所有提到的值的列的索引谢谢回答。它适用于前两个值,但第一个值和第三个值加在一起是什么呢
y[1,3]
?我知道它
y[c(1,3)]