2017-09-20 1 views
0

Ich habe eine Registerkarte getrennt Datentextdatei (Data.txt) mit 13 Spalten und 90 Zeilen. Es hat eine Kopfzeile (Beispielwerte) und die erste Spalte ist Beispielnamen.heatmap.2 rstudio Zeile Etiketten nicht auf Heatmap zeigen

Wenn ich meine Daten in eine Datamatrix lade, werden meine ersten Spaltennamen nicht angezeigt. Sie werden alle durch NA ersetzt. Ich glaube, das führt dazu, dass die Beispielnamen nicht als Spaltenbeschriftungen in der Heatmap angezeigt werden.

Hier ist mein einfaches Skript:

library(gplots) 
y <- data.matrix(Data) 
heatmap.2(y, main=K12_Ancient_Calculator, trace="none", 
      margins = c(10,12), cexRow=0.5) 

Irgendwelche Ideen, was getan werden muss, so dass die Probennamen in der ersten Spalte meiner Datendatei in y (Data Matrix) angezeigt. Derzeit erscheinen sie als NA.

Ich habe festgestellt, dass in meiner Version von Rstudio gibt es keine Option, 1. Spalte der Datendatei als "Etiketten" zu deklarieren, wenn Sie die "Import-Dataset" -Funktion verwenden.

Alle Rückmeldungen sehr geschätzt.

Antwort

0

heatmap.2 benötigt eine Matrix als Eingabe, die nur numerische Werte (oder NA) akzeptiert Meine Vermutung ist, dass Ihre Beispielnamen ein Zeichenvektor ist, der von data.matrix() in NA konvertiert wird Zwang)

Versuchen Sie folgendes:

y <- data.matrix(Data) 
row.names(y) <- Data[,1] # Set rownames 
y <- y[,-1] # Remove column with NA 

Voll Beispiel unter Verwendung des labRow Argument von heatmap.2. Der Standard von labRow ist der Name Ihrer Data Matrix. Diese sind in Ihrem Fall wahrscheinlich leer. Sie können unter Verwendung einer der folgenden Optionen

library(gplots) 
library(dplyr) 

y <- iris %>% 
    sample_frac(0.3) # Take a subset 

y.mat <- y %>% 
    select(-Species) %>% ## Remove identifier 
    data.matrix() ## Convert to matrix 

heatmap.2(y.mat, main="iris", trace="none", 
      margins = c(10,12), cexRow=0.5, 
      labRow = y$Species) 

## Alternatively set the rownames of your data.matrix 
y.mat2 <- y.mat 
row.names(y.mat2) <- y$Species 
heatmap.2(y.mat2, main="iris", trace="none", 
      margins = c(10,12), cexRow=0.5) 
+0

Danke für das Feedback, ich werde es versuchen in der Zwischenzeit das folgende Skript hat den Trick: – Gene100

0

Dank für die Rückmeldung, ich werde es später versuchen. In der Zwischenzeit hat das folgende auch den Trick:

filename <- "Data.txt" 
test <- read.table(filename, sep ="\t", quote = "", 
        stringsAsFactors = FALSE,header = TRUE, row.names = 1) 
input <- as.matrix(test) 
heatmap.2(input, trace = "none", Colv=FALSE, dendogram = 'row', 
      density = "none", col = bluered(20), 
      cexRow = 0.6, cexCol = 0.9, margins = c(8,14), scale = "row", 
      hclust =function(x) hclust(x,method = "average"))