2012-04-18 46 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