r使用列进行行名称选择

时间:2017-09-26 16:20:06

标签: r matrix dataframe

假设我有这个矩阵

 
      0 1 2 3 4 5 6 98 183 385 419 420 422 423 469 470 35698 35709 35729 37415
0     0 1 1 1 0 0 1  0   0   1   0   0   0   0   1   0     0     0     0     1
1     1 0 1 0 0 1 1  0   0   1   0   0   0   0   1   0     0     0     0     0
2     1 1 0 1 1 0 0  0   0   0   1   0   1   0   1   0     0     0     0     0
3     1 0 1 0 1 1 0  1   1   0   1   1   1   1   0   0     1     0     0     1
4     0 0 1 1 0 1 1  1   0   0   1   1   1   0   0   1     0     1     1     0
5     0 1 0 1 1 0 1  1   0   0   0   1   0   0   0   1     0     0     1     0
6     1 1 0 0 1 1 0  1   0   1   0   0   0   0   0   0     0     0     0     0
98    0 0 0 1 1 1 1  0   0   0   0   1   0   0   0   1     0     0     1     0
183   0 0 0 1 0 0 0  0   0   0   0   0   1   1   0   0     0     0     0     1
385   1 1 0 0 0 0 1  0   0   0   0   0   0   0   0   0     0     0     0     0
419   0 0 1 1 1 0 0  0   0   0   0   1   1   0   0   0     1     1     0     0
420   0 0 0 1 1 1 0  1   0   0   1   0   0   0   0   0     1     1     0     0
422   0 0 1 1 1 0 0  0   1   0   1   0   0   1   1   0     0     0     0     1
423   0 0 0 1 0 0 0  0   1   0   0   0   1   0   0   0     0     0     0     1
469   1 1 1 0 0 0 0  0   0   0   0   0   1   0   0   0     0     0     0     1
470   0 0 0 0 1 1 0  1   0   0   0   0   0   0   0   0     0     0     1     0
35698 0 0 0 1 0 0 0  0   0   0   1   1   0   0   0   0     0     0     0     0
35709 0 0 0 0 1 0 0  0   0   0   1   1   0   0   0   0     0     0     0     0
35729 0 0 0 0 1 1 0  1   0   0   0   0   0   0   0   1     0     0     0     0
37415 1 0 0 1 0 0 0  0   1   0   0   0   1   1   1   0     0     0     0     0  

我从其他程序中获取价值让我们说 X = 3。

我想选择x == 1的行的名称,即3的值为1的行。

产出将为:0,2,4,5,98,183,419,420,422,423,35698,37415。  而且我不想直接将“3”传递给命令。我想传递变量x,这样如果这个数字变化,我可以得到相应的输出。

有人可以帮帮我吗?提前谢谢

1 个答案:

答案 0 :(得分:1)

zip

您的要求是行名称

x=matrix(c(1,1,2,5,6,6,5,7,7,8,3,3,1,9,20,20,4,7,9,5),4,5,dimnames = list(c(letters[1:4]),c(LETTERS[1:5])))

这里' 20'是你的输入值,D是你搜索列。