1

如何提取mwhere ais even 的行?例如,

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

2 回答 2

6

你的问题有点模棱两可,但我想我知道你的意思。对于您的数据:

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

您可能意味着要选择mwhere ais even 中的所有行。因此,在这种情况下,您需要 的第二行和第五m,因为只有 的第二和第五个元素a是偶数。在这种情况下,这将起作用:

 m[a %% 2 ==0,]

但是,我认为您的意思是要找到其中a的偶数(在本例中为 2 和 4),然后选择m. 在这种情况下,您将使用:

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

所以这将首先选择第四个,然后是第二行 m。但是请记住,如果您有两次偶数,它将选择该行两次。

如果您想按顺序选择行(第 2 行,然后是第 4 行),您可以:

m[sort(a[a %% 2 ==0]),]
于 2012-04-18T15:56:21.440 回答
1

尝试这个

m[which(a %% 2 != 0), ]
于 2012-04-18T15:59:22.210 回答