【发布时间】:2014-04-02 00:50:57
【问题描述】:
我想写一个函数来重命名矩阵的行和列。
我的功能是
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
rownames<-(x, value) 中的错误: 'dimnames' [1] 的长度不等于数组范围 另外:警告信息: 在注释$probeID == c(nameRow) 中: 较长的对象长度不是较短对象长度的倍数
【问题讨论】:
-
您的意思是
rownames和colnames而不是row.names和col.names? -
是的,一种,我基本上是想改变矩阵的行名和列名@Thomas
-
@Thomas 你知道答案吗?请?
-
花点时间阅读下面我的回答。我很确定我对你做错的事情是正确的,不过,如果你提供数据(包括
annotation),你会得到更好的答案。 -
我无法将数据上传到这个网站...@BrodieG