R 软件使用数组提取行的子集

R software extracting a subset of rows using an array

我有一组由相同列组成的三个矩阵

confasipri1  
confasipri2  
confasipri3  

其中一列名为 ROW_NUM,我使用以下语句找到了 ROW_NUM 的常见值

metercomuni<-intersect (confasipri1[,"ROW_NUM"],confasipri2[,"ROW_NUM"])   

metercomuni<- intersect (metercomuni,confasipri3[,"ROW_NUM"])  

现在我的问题是从 confasipri1、confasipri2、confasipri3 中提取所有具有共同 metercomuni 的行。
例如,如果在 metercomuni 中我有 (1,3,5,8)
然后我必须创建一个新矩阵 (comuni1) 从 confasipri1 中提取只有具有

的行
ROW_NUM = 1 
ROW_NUM = 3 
ROW_NUM = 5 
ROW_NUM = 8

从 confasipri2 创建 comuni2,从 confasipri3 创建 comuni 3

confaspri1
row_num  datoA        datoB
1          p           f
2          c           a 
3          h           b
4          i           c
5          m           c

confasipri2
row_num  datoA        datoB
1          s           w
3          d           e
4          f           r
5          g           t

confasipri3
row_num  datoA        datoB
1          q           p
3          a           k
6          z           l
8          v           m

metercomuni  
1 3

我梦想的结果是

comuni1 
    row_num  datoA        datoB
    1          p           f
    3          h           b

comuni2 
    row_num  datoA        datoB
    1          s           w
    3          d           e

comuni3
    row_num  datoA        datoB
    1          q           p
    3          a           k

试试这个:

 comuni1<-confasipri1[confasipri1[,"row_num"] %in% metercomuni,]

看起来你的数据可能是数据框而不是矩阵,所以你也可以这样做:

comuni1<-with(confasipri1,confasipri1[row_num %in% metercomuni,])