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)]