1

csv ファイルに基づいて R でヒートマップをプログラミングしています。これには次の情報が含まれます。

NAME,metformin,metformin,phenformin,phenyl biguanide,metformin,estradiol
Adenocarcinoma of lung,0,0,0,-1.834006462,1.715939688,0
Adenocarcinoma of lung,1.995916353,0,0,0,0,0
Thymic carcinoma,1.154056722,1.106488961,0,1.145126548,0,-1.14095315
alpha-1-Antitrypsin deficiency,0,0,0,0,-1.917025669,-1.974151858

したがって、行の名前にラベルが表示されるヒートマップを作成したいと思います:肺の腺癌、腺癌...など。私はこの手順を実行しています:

hm<-read.csv("heatmap1.csv",sep=",")
row.names(hm)<-hm$NAME
hm<-hm[,2:7]
hm_matrix<-data.matrix(hm)
heatM<-heatmap(hm_matrix, Rowv=NA, Colv=NA, col = cm.colors(256), scale="column", margins=c(5,10))

私が得た問題は、次の行にあります。

row.names(hm)<-hm$NAME

Error in `row.names<-.data.frame`(`*tmp*`, value = c(1L, 1L, 3L, 2L)) : 
  duplicate 'row.names' are not allowed

名前が重複していることは承知していますが、同じ病気であっても測定レベル (数量) が異なるため、ヒートマップにデータを表示する必要があります。

助けてくれてありがとう

4

1 に答える 1

3

make.unique名前の一意のバージョンを作成するために使用できます

row.names(hm) <-  make.unique(as.character(hm$NAME))
于 2013-01-09T06:03:57.720 に答える