2015-02-02 3 views
0

У меня есть набор из три матрицы, составленной один и те же колоннамиR Программного обеспечения извлечение подмножества строк с использованием массива

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 

и то же самое создать comuni2 из confasipri2 и comuni 3 из confasipri3

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 
+2

попробовать это 'comuni1 <-confasipri1 [confasipri1 [ "row_num"]% в % metercomuni,] ', может быть проще, если вы преобразовали свою матрицу в dataframes, хотя – NicE

+0

NicE .... хороший ответ! он работал при первом выстреле. Если вы можете так любезно предложить мне решение, чтобы я мог его принять и отметить как полезный –

ответ

2

Попробуйте это:

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

Похоже, ваши данные могут быть кадрами данных не матрицы, так что вы можете сделать:

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

 Смежные вопросы

  • Нет связанных вопросов^_^