2017-09-26 92 views
0

假設我有這個矩陣R個行名稱選擇使用列

 
     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,以便如果這個數字變化,我可以得到相應的輸出。

任何人都可以幫助我嗎?在此先感謝

+0

你能提供你的預期產出嗎?我很困惑你到底在找什麼。 –

+2

假設你想要名爲''3''的列等於1的行,'rownames(this_matrix)[this_matrix [,'3'] == 1]'。 – Gregor

+0

這個矩陣是使用'matrix'命令創建的嗎? –

回答

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

找你的要求是那麼

rownames(x)[x[,"D"]==20] 

此行名「20」是找你的輸入值,d是找你的搜索欄。