2013-05-22 57 views
0

在R,設M是矩陣在R,邏輯運算符和公式從基質中提取的行

 [,1] [,2] [,3] 
[1,] 1 9 1 
[2,] 2 12 5 
[3,] 3 4 6 
[4,] 6 2 4 

我想從M個提取子矩陣米施加不同條件

條件1:M[,1]<6 & M[,2]>8; 條件2:M[,1]==6 & M[,2]>1

子矩陣米應該像

 [,1] [,2] [,3] 
[1,] 1 9 1 
[2,] 2 12 5 
[3,] 6 2 4 

我試圖用m <- M[(M[,1]<6 & M[,2]>8) & (M[,1]==6 & M[,2]>1) ,]但它不工作;我使用&和括號()不會產生正確的m

回答

4

我想你的意思是使用OR運算符|你的兩個條件之間:具有優先級低於&根據?Syntax,你甚至可以刪除所有括號

M[(M[,1]<6 & M[,2]>8) | (M[,1]==6 & M[,2]>1) ,] 
#  [,1] [,2] [,3] 
# [1,] 1 9 1 
# [2,] 2 12 5 
# [3,] 6 2 4 

|。但如果它能幫助你清晰起見,隨時保持身邊。

+0

definitly better:&運算符是問題的根源,而不是括號。非常感謝Avitus – Avitus