我是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.names.as.matrix
基于矩阵中存在的值
gene.id.map
因此,结果矩阵应该是这样的:
1977 25989 6194 [...]
[1,] 0 0 0
[2,] 0 0 0
[3,] 0 0 0
[...]
谢谢!
答案 0 :(得分: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