Ich versuche eine Heatmap mit dem heatmap.2
-Paket zu erstellen. Meine Daten enthalten viele NaN
-Werte und ich möchte Folgendes tun. Jedes Mal, wenn ein NaN
-Wert vorhanden ist, muss die Zelle einfach hellgrau (oder eine andere neutrale Farbe, möglicherweise weiß) und alle anderen Werte (die log2-Ausdrücke sind) mit einem Standard grün / gelb / rotes Farbschema. Hier ist mein Code, den ich benutze:
Das funktioniert gut, wenn keine NaN
-Werte vorhanden sind, aber wenn die Daten NaN
haben, bekomme ich einen Fehler, der besagt:
Im Wesentlichen möchte ich, dass die NaN
in den Daten ignoriert werden. Ich bin mir nicht sicher, wie ich damit umgehen soll. jede Hilfe würde sehr geschätzt werden.
TL; DR: Das Problem ist wahrscheinlich auf delegierte distfun
und nicht auf die Funktion heatmap2
selbst zurückzuführen. Die Standardfunktion dist
versucht, den Abstand zwischen Ihren Datenpunkten zu berechnen, und wenn die Abstandsberechnung eine NA zurückgibt, kann die Clusterfunktion das nicht verarbeiten.
Die längere Version:
Ich habe in letzter Zeit das gleiche Problem wie das OP erlebt und musste ziemlich eingreifen, um zu verstehen, warum das Problem für andere nicht reproduzierbar war.
Das wesentliche Problem ist wie folgt: heatmap2 übergibt standardmäßig hclust
und hclustfun
und dist
als distfun
Parameter. Die Fehlermeldung besagt eindeutig, dass es hclustfun
ist (was in diesem Fall standardmäßig hclust
ist), das nicht die NA
s mag.
Die nächste Information lautet: Obwohl die Datenmatrix NA
s enthält, können die Ergebnisse von dist
(die in hclust
übergeben werden) frei von NAs sein, was bei @ kdauria der Fall ist Antworten. Siehe unten:
Die Zufallsmatrix reproduziert das Problem nicht, weil sie das Problem vermeidet. Was mich zu der Frage bringt: Was braucht es, um NAs von dist
zu bekommen?
Meine Daten hatten einige weit entfernte Werte, die ich für den Grund hielt, aber ich konnte das Problem nur reproduzieren, indem ich eine Reihe von NAs hinzufügte:
%Vor%Die Situation scheint jedoch nicht spezifisch für den Fall zu sein, dass eine Reihe vollständig aus NA besteht. Zum Beispiel:
%Vor%Ich bin also kein Experte im Codieren, aber ich habe gelernt, Heatmaps auf R zu erstellen, und ich habe immer die gleiche Fehlermeldung für meine NA-Daten. Es stellt sich heraus, dass der Grund, warum ich die Fehlermeldung bekam, war, dass NA-Begriffe in der ersten Spalte in meinen Daten waren und R das überhaupt nicht mochte. Also fügte ich eine zusätzliche Spalte hinzu und füllte sie mit 1en und es funktionierte !! Ich hoffe, vielleicht findet jemand das nützlich!
Kahina