R 根据另一个变量从矩阵中提取行

R 根据另一个变量从矩阵中提取行,r,matrix,R,Matrix,如何提取m中a为偶数的行?比如说, m = matrix(1:24, 6) a = c(3, 4, 1, 1, 2, 5) 你的问题有点模棱两可,但我想我知道你的意思。对于您的数据: m = matrix(1:24, 6) a = c(3, 4, 1, 1, 2, 5) 您可能想选择m中的所有行,其中a为偶数。因此,在本例中,您需要第二行和第五行m,因为只有a的第二行和第五行是偶数。在这种情况下,这将起作用: m[a %% 2 ==0,] 然而,我认为,您的意思是希望在a中找到偶数(在本

如何提取
m
a
为偶数的行?比如说,

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

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

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]),]

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

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]),]
试试这个

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

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

你好,谢谢你帮助我。m[a%%2==0,]应该是正确的,但当我在R中尝试时,我得到了这个矩阵[,1][,2][,3][,4][1,]2 8 14 20[2,]5 11 17 23抱歉,矩阵不正确:我的意思是当我尝试m[a%%2==0时,我得到了这个矩阵:[,1][,2][,3][,4][1,]2 8 14 20[2,]5 11 17 23所以,第二行是不均匀值吗?我认为@nograps的答案是正确的。如果要从m中提取所有值均为偶数的行,则不考虑这些值​​当然,您可以尝试:m[unique(其中(m%%2==0,arr.ind=TRUE)[,1]),]您好,谢谢您的帮助。m[a%%2==0,]应该是正确的,但当我在R中尝试时,我得到了这个矩阵[,1][,2][,3][,4][1,]2 8 14 20[2,]5 11 17 23抱歉,矩阵不正确:我的意思是当我尝试m[a%%2==0时,我得到了这个矩阵:[,1][,2][,3][,4][1,]2 8 14 20[2,]5 11 17 23所以,第二行是不均匀值吗?我认为@nograps的答案是正确的。如果要从m中提取所有值均为偶数的行,则不考虑这些值​​对于a,您可以尝试:m[unique(其中(m%%2==0,arr.ind=TRUE)[,1]),当我尝试此m[a%%2==0时,我得到此矩阵。第二排不均匀。[,1][,2][,3][,4][1,]2 8 14 20[2,]5 11 17 23但无论如何都要感谢你的帮助。当我尝试这个m[a%%2==0时,我得到了这个矩阵。第二排不均匀。但是无论如何,还是要感谢你对我的帮助。