我想寫一個函數來重命名矩陣的行和列。在R中重命名矩陣中的行和列名,'dimnames'[1]的長度不等於數組範圍
My功能是
changeMatrixName<- function(mat){
nameRow<-vector(mode="character",length=nrow(mat))
nameCol<-vector(mode="character",length=ncol(mat))
nameCol<- colnames(mat)
nameRow<- rownames(mat)
#annotation[annotation$probeID==c("ILMN_1814092","ILMN_1668851"),]$symbol
rowGeneName<-vector(mode="character",length=nrow(mat))
colGeneName<-vector(mode="character",length=ncol(mat))
rowGeneName<-annotation[annotation$probeID==c(nameRow),]$symbol
colGeneName<-annotation[annotation$probeID==c(nameCol),]$symbol
row.names(mat)<-rowGeneName
col.names(mat)<-colGeneName
return(mat)
}
我有一個測試矩陣狀
ILMN_1814092 ILMN_1805104 ILMN_2070570 ILMN_2232084 ILMN_1704579
ILMN_1802380 4.972073e-03 0.016279737 0.0076933191 0.0214107369 0.001951975
ILMN_1753196 2.222289e-04 0.080954797 0.0389565797 0.0220420297 0.002545084
ILMN_1753830 1.657137e-05 0.009063726 0.0004676619 0.0008824427 0.007684124
當運行
TEST2 < -changeMatrixName(測試)
錯誤
rownames<-
(x,value): 'dimnames'[1]的長度不等於數組範圍 另外:警告消息: 註解$ probeID == c(nameRow): 較長的對象長度不是較短的倍數對象長度
你的意思是'rownames'和'colnames'而不是'row.names'和'col.names'嗎? – Thomas
是的,我基本上想改變矩陣的行名和列名@Thomas – ToBeGeek
@Thomas你知道答案嗎?請 ? – ToBeGeek