Question

par défaut heatmap.2 à dist pour calculer la matrice de distance et hclust de clustering. Est-ce que quelqu'un maintenant comment je peux mettre dist utiliser la méthode euclidienne et hclust d'utiliser la méthode barycentre? J'ai fourni un exemple de code compilable ci-dessous. J'ai essayé: distfun = dist (méthode = "euclidien"), mais cela ne fonctionne pas. Toutes les 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
)
Était-ce utile?

La solution

le code Jetant pour heatmap.2 Je suis assez sûr que la valeur par défaut est d'utiliser dist, et par défaut de c'est à son tour d'utiliser des distances euclidiennes.

La raison pour laquelle votre tentative de distfun = dist(method = 'euclidean') passage n'a pas fonctionné est que distfun (et hclustfun) sont censés être simplement nom de fonctions. Donc, si vous voulez par défaut modifier et passer des arguments que vous devez écrire une fonction wrapper comme ceci:

heatmap.2(...,hclustfun = function(x) hclust(x,method = 'centroid'),...)

Comme je l'ai dit, je suis assez certain que heatmap.2 utilise des distances euclidiennes par défaut, mais une solution similaire peut être utilisée pour modifier la fonction de distance utilisée:

heatmap.2(...,distfun = function(x) dist(x,method = 'euclidean'),...)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top