2014-09-06 45 views
1

我是新來的R和我會在我的研究活動:)的R - 改變自己的映射與其他值

的問題是使用它的基礎上,矩陣的列名:

  • 我具有矩陣

    gene.names.as.matrix

head(gene.names.as.matrix) 

    EIF4E ULK3... RPS6 EIF4EBP1 STRADA CAB39 BRAF 
[1,]  0  0 0  0  0  0 0  
[2,]  0  0 0  0  0  0 0  
[3,]  0  0 0  0  0  0 0  
[4,]  0  0 0  0  0  0 0  
[5,]  0  0 0  0  0  0 0  
[6,]  0  0 0  0  0  0 0 

帶有許多行和其他列,爲簡潔起見,此處不顯示。

  • 我還有一個矩陣

    gene.id.map

head(gene.id.map) 

     gene.symbol gene.id 
1977 "EIF4E"  "1977" 
25989 "ULK3..." "25989" 
6194 "RPS6"  "6194" 
1978 "EIF4EBP1" "1978" 
92335 "STRADA" "92335" 
51719 "CAB39"  "51719" 
  • 我想改變的

    列名

    存在於基體中的值的基礎

    gene.id.map 
    

    因此上gene.names.as.matrix

,結果矩陣應該是這樣的:

 1977 25989 6194 [...] 
[1,]  0  0 0  
[2,]  0  0 0  
[3,]  0  0 0 
[...] 

謝謝!

+0

你不應該使用數字作爲列名 – 2014-09-06 09:01:29

+0

而且我應該怎麼用? – alevax 2014-09-06 17:32:56

+0

名稱,例如''gene.id''而不是'2' – user890739 2016-03-30 23:23:20

回答

1

你可以這樣做:

colnames(gene.names.as.matrix)[match(gene.id.map[,1], colnames(gene.names.as.matrix))] <- genes.id.map[,2][match(gene.id.map[,1], colnames(gene.names.as.matrix))] 

gene.names.as.matrix 
#  1977 25989 6194 1978 92335 51719 BRAF 
#[1,]  0  0  0  0  0  0 0 
#[2,]  0  0  0  0  0  0 0 
#[3,]  0  0  0  0  0  0 0 
#[4,]  0  0  0  0  0  0 0 
#[5,]  0  0  0  0  0  0 0 
#[6,]  0  0  0  0  0  0 0 
+0

非常感謝!有用。在矩陣的名稱上有一點語法錯誤,但它只是一個錯字;) – alevax 2014-09-07 10:12:44

+0

@alevax很高興知道它的工作原理。我複製了該示例中的示例。最好在將來顯示'dput(head(data,10))'輸出來正確地獲得結構。 – akrun 2014-09-07 10:15:23