从另一个变量的条件中提取矩阵中的行

时间:2012-04-18 15:48:47

标签: r matrix

如何提取ma的行?例如,

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

2 个答案:

答案 0 :(得分:6)

你的问题有点含糊不清,但我想我知道你的意思。对于您的数据:

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

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

 m[a %% 2 ==0,]

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

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

因此,首先选择第四个,然后选择m的第二个行。但请记住,如果你有两次偶数,它会选择两次。

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

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

答案 1 :(得分:1)

试试这个

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