définition de la matrice de distance et des méthodes de clustering dans heatmap.2
heatmap.2 par défaut, dist pour le calcul de la matrice de distance et hclust pour le clustering.
Quelqu'un maintenant, comment je peux régler dist l'utilisation de la méthode euclidienne et hclust à utiliser le centre de gravité de la méthode?
J'ai fourni un compilable exemple de code ci-dessous.
J'ai essayé: distfun = dist(method = "euclidienne"),
mais cela ne fonctionne pas. Des idées?
library("gplots")
library("RColorBrewer")
test <- matrix(c(79,38.6,30.2,10.8,22,
81,37.7,28.4,9.7,19.9,
82,36.2,26.8,9.8,20.9,
74,29.9,17.2,6.1,13.9,
81,37.4,20.5,6.7,14.6),ncol=5,byrow=TRUE)
colnames(test) <- c("18:0","18:1","18:2","18:3","20:0")
rownames(test) <- c("Sample 1","Sample 2","Sample 3", "Sample 4","Sample 5")
test <- as.table(test)
mat=data.matrix(test)
heatmap.2(mat,
dendrogram="row",
Rowv=TRUE,
Colv=NULL,
distfun = dist,
hclustfun = hclust,
xlab = "Lipid Species",
ylab = NULL,
colsep=c(1),
sepcolor="black",
key=TRUE,
keysize=1,
trace="none",
density.info=c("none"),
margins=c(8, 12),
col=bluered
)
source d'informationauteur jonas87
Vous devez vous connecter pour publier un commentaire.
En regardant le code pour
heatmap.2
je suis assez sûr que la valeur par défaut est d'utiliserdist
et il est par défaut à son tour, utiliser des distances euclidiennes.La raison de votre tentative de passage
distfun = dist(method = 'euclidean')
ne fonctionne pas, c'est quedistfun
(ethclustfun
) sont censés être simplement nom de fonctions. Donc, si vous voulez modifier les valeurs par défaut et passer des arguments, vous devez écrire une fonction wrapper comme ceci:Comme je l'ai mentionné, je suis assez certain que
heatmap.2
est à l'aide de distances euclidiennes par défaut, mais une solution similaire peut être utilisé pour modifier la fonction de distance utilisée: