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时,我得到了这个矩阵。第二排不均匀。但是无论如何,还是要感谢你对我的帮助。