在一个矩阵中找到模式到R中的另一个矩阵 [英] Finding pattern in one matrix to another matrix in R

查看:67
本文介绍了在一个矩阵中找到模式到R中的另一个矩阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个矩阵(V),看起来像这样

I have a matrix (V), which looks like this

         [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[V1,]   37   15   30    3    4   11   35   31
[V2,]   44   31   45   30   24   39    1   18
[V3,]   39   49    7   36   14   43   26   24
[V4,]   45   31   26   33   12   47   37   15
[V5,]   23   27   34   29   30   34   17    4
[V6,]    9   46   39   34    8   43   42   37

我还有另一个矩阵(X)

I have another matrix (X)

         [,1] [,2] [,3] [,4] [,5] [,6] 
[X1,]   37   15   21    3    4   11   35   31
[X2,]   37   37   45   30   24   39    1   18
[X3,]   39   49    7   36   14   43   26   24
[X4,]   45   31   26   37   12   47   37   15
[X5,]   23   27   34   29   30   37   17    4
[X6,]    9   46   39   34    8   37   42   37

现在,矩阵V的每一行都应与矩阵X的每一行匹配,以获得类似

Now each row of matrix V should be matched with each row of matrix X to get a count matrix like

  [,V1] [,V2] [,V3] [,V4] [,V5] [,V6] [,V7] [,8]
[X1,]   7      
[X2,]   

要检查X1和V1之间的通用数字?

To check the common numbers between X1 and V1??

如何使用R做到这一点?请给我建议一些想法

How do I do it using R? Please suggest me some ideas

推荐答案

这是使用apply

row.names(V) <- paste0("V",seq(6))
row.names(X) <- paste0("X",seq(6))

apply(V, 1, function(i){
  apply(X, 1, function(j){
    length(intersect(i, j))
    }
  )
})

   V1 V2 V3 V4 V5 V6
X1  7  1  0  3  1  1
X2  2  6  2  2  1  2
X3  0  2  8  1  0  2
X4  3  2  1  7  0  1
X5  3  1  0  1  7  2
X6  1  1  1  1  1  7

这篇关于在一个矩阵中找到模式到R中的另一个矩阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆