2012-04-18 69 views

回答

6

你的问题有点含糊,但我想我明白你的意思。为您的数据:

m = matrix(1:24, 6) 
a = c(3, 4, 1, 1, 2, 5) 

你可能意味着你要在m选择所有的行,其中a是偶数。因此,在这种情况下,您需要第二个第五个行的m,因为只有a的第二个和第五个元素是偶数。在这种情况下,这会工作:但是

m[a %% 2 ==0,] 

我想,你的意思是,你想要找到a这甚至,数字(在这种情况下,2和4),然后选择m这些行。在这种情况下,你可以使用:

m[a[a %% 2 ==0],] 

因此,这将首先选择第四,然后m的行。但请记住,如果您有两次偶数,它将选择两次。

如果你想选择以行(第2行,然后第4行),你会怎么做:

m[sort(a[a %% 2 ==0]),] 
+0

当我尝试这个M [A %% 2 == 0,]我得到这个矩阵。第二排不平坦。 [,1] [,2] [,3] [,4] [1,] 2 8 14 20 [2,] 5 11 17 23 但无论如何要帮助我。 – Markos 2012-04-18 19:15:26

1

试试这个

m[which(a %% 2 != 0), ] 
+0

你好,谢谢你对我的帮助。 M [A %% 2 == 0,]应该是TE正确的,但,当我在RI试过得到这个矩阵[1] [2] [3] [,4] [1,] 2 8 14 20 [2,1] 5 11 17 23 – Markos 2012-04-18 18:15:22

+0

对不起不正确矩阵:我的意思是,当我尝试M [A %% 2 == 0,]我得到这个矩阵: [1] [2] [3] [, 4] [1,] 2 8 14 20 [2,1] 5 11 17 23 所以,第2行是不均匀的值? – Markos 2012-04-18 18:17:37

+0

我认为@nograpes的答案是正确的。如果你想提取,而不管所涉及的值从m个行中的所有值都是偶数,则可以尝试:M [独特(其(米2 %% == 0,arr.ind = TRUE)[, 1]),] – 2012-04-18 18:33:35