我有一组由相同列组成的三个矩阵
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
答案 0 :(得分:2)
试试这个:
comuni1<-confasipri1[confasipri1[,"row_num"] %in% metercomuni,]
看起来你的数据可能是数据框而不是矩阵,所以你也可以这样做:
comuni1<-with(confasipri1,confasipri1[row_num %in% metercomuni,])