0

在 R 中,设 M 为矩阵

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

我想从 M 中提取一个子矩阵 m 应用不同的条件

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

子矩阵 m 应该看起来像

     [,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

1 回答 1

4

我认为您的意思是|在两个条件之间使用 OR 运算符:

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

|优先级低于 based &?Syntax你甚至可以去掉所有的括号。但是,如果它可以帮助您清晰,请随意保留它们。

于 2013-05-22T12:29:07.197 回答