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

Code: Alles auswählen

str(Cacna)
, 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
:D :D :D :D :D

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.

Code: Alles auswählen

str(Test_2) #?
sessionInfo()
LG,
Bernhard