Frage

Heatmap.2 Standards für die Berechnung der Abstandsmatrix und zum HClust zum Clustering. Kann ich jetzt so einstellen, wie ich die euklidische Methode und HCLUST verwenden kann, um die Zentroidmethode zu verwenden? Ich habe ein kompilierbares Code -Probe bellor bereitgestellt. Ich habe es versucht: distfun = dist (method = "euclidean"), aber das funktioniert nicht. Irgendwelche Ideen?

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
)
War es hilfreich?

Lösung

Blick auf den Code für heatmap.2 Ich bin mir ziemlich sicher, dass die Standardeinstellung verwendet wird dist, und es ist standardmäßig, um euklidische Entfernungen zu verwenden.

Der Grund, warum Ihr Versuch, zu gehen distfun = dist(method = 'euclidean') hat nicht funktioniert ist das distfun (und hclustfun) sollen einfach sein Name von Funktionen. Wenn Sie also Standardeinstellungen ändern und Argumente übergeben möchten, müssen Sie eine solche Wrapper -Funktion schreiben:

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

Wie ich bereits erwähnte, bin ich mir ziemlich sicher, dass heatmap.2 Verwenden Sie standardmäßig euklidische Entfernungen, aber eine ähnliche Lösung kann verwendet werden, um die verwendete Entfernungsfunktion zu ändern:

heatmap.2(...,distfun = function(x) dist(x,method = 'euclidean'),...)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top