Seite 1 von 2
Data.Matrix
Verfasst: Mi Dez 14, 2016 9:53 am
von Kaesetoast
Hallo liebe Leute,
ich habe ein kleines Problem, was für die meisten wahrscheinlich trivial ist. Ich bin jedoch blutiger Anfänger was R und programmieren im allgemeinen angeht.
Ich möchte eine Heatmap erstellen.
Dafür lade ich meine .csv Datei per
Cacna <- read.csv("Cacna.csv")
hoch. Um meine Heatmap zu erstellen muss ich diese in eine Datenmatrix umwandeln. Dafür benutze ich den Befehl
x <- data.matrix(Cacna)
Hier mein Problem: In der Datei bleibt die Beschriftung der Zeilen (also die senkrechte) bestehen (was ich gut finde) aber aus meiner Beschriftung für jede Zeile macht er Zahlen is semisinnvoller Reihenfolge.
Auf Youtube konnte ich leider keine hilfe finden, da bei dem Tutorial, was ich angeschaut habe, das Problem von vornherein nicht auftritt (ihre Beschriftung der Zeilen bleibt einfach direkt bestehen).
Viele Grüße
Kaesetoast
Re: Data.Matrix
Verfasst: Mi Dez 14, 2016 10:37 am
von student
Hallo Kaesetoast,
ich gehe davon aus, dass Du die Zugriffsmethode auf Matrixelement kennst. Du möchtest die Beschriftung der Matrix loswerden, wie hier in dem folgenden Beispiel?
Code: Alles auswählen
> Quadratmatrix
S1 S2 S3 S4 S5
Z1 2 1 2 2 3
Z2 3 7 4 3 5
Z3 5 6 6 5 6
Z4 5 7 7 6 7
Z5 3 2 3 7 8
> rownames(Quadratmatrix) <- NULL
> Quadratmatrix
S1 S2 S3 S4 S5
[1,] 2 1 2 2 3
[2,] 3 7 4 3 5
[3,] 5 6 6 5 6
[4,] 5 7 7 6 7
[5,] 3 2 3 7 8
> colnames(Quadratmatrix) <- NULL
> Quadratmatrix
[,1] [,2] [,3] [,4] [,5]
[1,] 2 1 2 2 3
[2,] 3 7 4 3 5
[3,] 5 6 6 5 6
[4,] 5 7 7 6 7
[5,] 3 2 3 7 8
Re: Data.Matrix
Verfasst: Mi Dez 14, 2016 11:07 am
von Kaesetoast
Ich möchte dass die Beschriftung meiner Zeilen bestehen bleibt:
Code: Alles auswählen
Gene Brain Spinal [...]
Cacna1 42 22 [...]
Cacna2 123 8 [...]
[...]
[...]
das wird zu:
Code: Alles auswählen
Gene Brain Spinal [...]
1 1 42 22 [...]
2 2 123 8 [...]
[...]
[...]
Also anstatt dass das Program noch eine Extrareihe einschiebt und aus meinem Cacna1 und Cacna2 irgendwelche Zahlen macht
Re: Data.Matrix
Verfasst: Mi Dez 14, 2016 11:38 am
von bigben
Hallo Kaesetoast,
das sieht so aus, als wären das nicht die Namen der Zeilen, sondern selbst eine Spalte Deines Dataframes. Eine Matrix aus Zahlen kann nur Zahlen enthalten, keine Strings. Deshalb die Umwandlung in reine Zahlen. Wahrscheinlich ist es also erforderlich, aus Deiner "Spalte" die Namen der Zeilen zu machen und die Spalte danach zu löschen.
Poste bitte mal das Ergebnis von
, damit wir Deine Datenstruktur besser verstehen.
LG,
Bernhard
Re: Data.Matrix
Verfasst: Mi Dez 14, 2016 11:54 am
von Kaesetoast
Code: Alles auswählen
data.frame': 17 obs. of 9 variables:
$ Gene : Factor w/ 17 levels "cacna1aa","cacna1ba",..: 1 2 3 4 5 6 7 10 8 9 ...
$ brain : num 330 207 395 183 687 ...
$ spinal : num 34.7 35.8 77.8 25.7 10.2 ...
$ kidney : num 5.8 0 1.9 2.3 0 5.4 0.7 4.8 5.2 14.8 ...
$ heart : num 2.9 9.8 1046 34.9 0 ...
$ sk_muscle : num 1.9 19 29.3 21.3 0 1.1 9.7 0.6 97.6 22.1 ...
$ main_EO : num 6.2 23.2 23 9.4 0 0.8 4.3 10.5 56.1 12.5 ...
$ Sachs_EO : num 7.7 39.3 29.1 3.4 0 2.4 13.6 18.3 63.1 17.7 ...
$ Hunters_EO: num 10.6 43.5 22.6 8.3 0 1.3 13.3 15.6 41.6 26.3 ...
Re: Data.Matrix
Verfasst: Mi Dez 14, 2016 12:23 pm
von EDi
Ich würde die ersten Spalte als rownames setzen, danach entfernen, zu einer Matrix umwandelt und dann die heatmap erstellen.
Ungefähr so:
Code: Alles auswählen
# set first col as rownames
rownames(Cacna) <- Cacna[['Gene']]
# copy & remove first col
cm <- data.matrix(Cacna[ , -1])
heatmap(cm)
Re: Data.Matrix
Verfasst: Mi Dez 14, 2016 12:58 pm
von Kaesetoast
Vielen vielen Dank! Hat jetzt wunderbar geklappt!
Ich hoffe von hier aus komme ich dann zurecht durch mein Selbststudium
Danke an euch

Re: Data.Matrix
Verfasst: Mi Dez 14, 2016 5:36 pm
von student
Sorry, Kaesetoast, ich muss es erwähnen: Du hast von einer
Matrix und nicht vom einem
data.frame gesprochen! Deswegen, wie von bigben erwähnt, ist
str(Datenobjekt) immer sehr hilfreich!

Re: Data.Matrix
Verfasst: Mi Dez 21, 2016 9:13 am
von Kaesetoast
Ich bin verwirrt?!
Nachdem der hier vorgeschlagene Weg super funktioniert für einige Tage, kommt seit gestern
Code: Alles auswählen
> rownames(Test_2) <- Test_2[['Gene']]
Warning message:
Setting row names on a tibble is deprecated.
Warum kommt das plötzlich? Ich mache alles 1:1 wie davor

Re: Data.Matrix
Verfasst: Mi Dez 21, 2016 1:35 pm
von bigben
Nein, Du machst es nicht wie zuvor. Du hast mit irgendwelchen packages aus dem Hadleyverse/Tidyverse herumgespielt und aus Deinem Dataframe ein tibble gemacht. Ein Tibble ist kein Dataframe ist keine Matrix. Auch wenn das alles sehr ähnlich aussieht. Du musst Dich mal mit den verschiedenen Datentypen von R befassen! Das Tibble gehört nicht zu R, sondern ist mit irgendeinem fremdpackage in Dein Environment gekommen.
LG,
Bernhard