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

1 r matrix

如何提取m哪些行a是偶数?例如,

m = matrix(1:24, 6)
a = c(3, 4, 1, 1, 2, 5)
Run Code Online (Sandbox Code Playgroud)

nog*_*pes 6

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

m = matrix(1:24, 6)
a = c(3, 4, 1, 1, 2, 5)
Run Code Online (Sandbox Code Playgroud)

你可以说你要选择所有行m,其中a是偶数.所以,在这种情况下,你会想要第二行和第五m,因为只有第二第五a是偶数.在这种情况下,这将工作:

 m[a %% 2 ==0,]
Run Code Online (Sandbox Code Playgroud)

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

m[a[a %% 2 ==0],]
Run Code Online (Sandbox Code Playgroud)

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

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

m[sort(a[a %% 2 ==0]),]
Run Code Online (Sandbox Code Playgroud)