for-Schleife mit einer Matrix

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
mathrac

for-Schleife mit einer Matrix

Beitrag von mathrac »

Hallo ihr Lieben,
ich würde gerne in einer verschateleten for Schleife einen Datensatz einlesen. Dabei soll in einer Variable der Datensatz eingespeichert werden. Meine Frage ist nun, wie bekomme ich das denn hin? Also so sieht das bis jetzt aus:

Code: Alles auswählen

läufer = c("s1.1", "s2.1");
filter = c("s1.1.filter", "s2.1.filter");
art_alle = c("top10euV", "top100euV");
neu = c("s1.1.1.1.neu", "s2.1.1.1.neu")
sortet = c("s1.1.1.sortet", "s2.1.1.sortet");
twert = c("t1", "t2");
twert2 = c("t1.1", "t2.1");

 for(a in art_alle){
  for(l in läufer){
    for(f in filter){
      for(s in sortet){
        for(n in neu){
          for(t in twert){
            for(d in twert2){
              l = a;
              f = data.frame(subset(l,l$Pvalue<0.05));
              v1 = colnames(f);
              namen_eins0 = c("Rank", "Start", "Stop", "nSNPs", "Pvalue");
              n = f[, !(v1 %in% namen_eins0)];
              ...

Also das ding ist jetzt, wenn ich es laufen lassen würde, erkennt er top10euV nur als Variable an und nicht als Datensatz und wenn ist es ohne die ".." mache, dann sieht er den ganzen Datensatz als ein rießiger vektor. Wie kann ich ihm denn sagen, dass dies eine Matrix/Tabelle ist?

Grüße
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: for-Schleife mit einer Matrix

Beitrag von bigben »

Hallo mathrac,

bitte benutze [code]-Tags ([code]...[/code]) wenn Du Code darstellen willst. Ich habe das für Dich jetzt oben schon ergänzt, wäre aber schön, wenn Du selbst dran denkst.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: for-Schleife mit einer Matrix

Beitrag von bigben »

mathrac hat geschrieben: Mo Sep 11, 2017 9:56 amAlso das ding ist jetzt, wenn ich es laufen lassen würde, erkennt er top10euV nur als Variable an und nicht als Datensatz
Ich sehe Code, in dem "to10eu" ein String ist, der in dar Variable art_alle gespeichert ist, über die die äußerste Schleife läuft. Ich vermute, Du hast irgendwo im Speicher auch schon eine Variable, die to10eu heißt? Was verstehst Du unter "als Datensatz erkennen"?
mathrac hat geschrieben: Mo Sep 11, 2017 9:56 am und wenn ist es ohne die ".." mache, dann sieht er den ganzen Datensatz als ein rießiger vektor.
ohne welche ".."? Welchen ganzen Datensatz "sieht" R?

mathrac hat geschrieben: Mo Sep 11, 2017 9:56 amWie kann ich ihm denn sagen, dass dies eine Matrix/Tabelle ist?
Wenn Du einen riesigen Vektor hast, kannst Du daraus eine Matrix machen mit der Funktion matrix:

Code: Alles auswählen

riesig <- c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)
matrix(riesig, nrow=5)
matrix(riesig, nrow=4, byrow=TRUE)
Meinst Du mit Tabelle einen data.frame?

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
mathrac

Re: for-Schleife mit einer Matrix

Beitrag von mathrac »

Also bigben, erstmal vielen Dank für die schnelle Antwort.

"Ich sehe Code, in dem "to10eu" ein String ist, der in dar Variable art_alle gespeichert ist, über die die äußerste Schleife läuft. Ich vermute, Du hast irgendwo im Speicher auch schon eine Variable, die to10eu heißt? Was verstehst Du unter "als Datensatz erkennen"? "

Genau, also "to10eu" ist eine Matrix/Tabelle die auch mehr als 24 tausend Zeilen und 8 Spalten besteht. R erkennt ja so als Variablen nur Vektoren und da ist mein Problem. Ich will das er meinen Datensatz in einer Variablen speichert, die ich dann mit anderen Datensätzen ihm definiere. Später ist meine Idee darauf über die for-Schleife zuzugreifen. Aber das geht halt nicht, weil er dies dann quasie nur als Variablen Vektor "erkennt".

"ohne welche ".."? Welchen ganzen Datensatz "sieht" R?"

Hier meine ich die Gänzefüßchen. Wenn ich die einstze erkennt er das was drin steht als Variable. Wenn ich sie weg lasse hängt er mir alle Spalten als einen riedigen Vektor aneinander. Und das will ich nicht.

Ja genau einen data.frame.

LG,
David
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: for-Schleife mit einer Matrix

Beitrag von bigben »

mathrac hat geschrieben: Mo Sep 11, 2017 2:56 pmGenau, also "to10eu" ist eine Matrix/Tabelle die auch mehr als 24 tausend Zeilen und 8 Spalten besteht.
Gut zu wissen. Eine Matrix also, und to100eu ist dann auch eine Matrix mit ähnlichem Aufbau.
R erkennt ja so als Variablen nur Vektoren und da ist mein Problem.

R kennt Vektoren, R kennt Matrixen, R kennt Listen und R kennt dataframes und noch ein paar Dinge mehr (S3-Objekte, S4-Objekte, ...). Kannst Du irgendwie präziser sagen, was Du meinst?
Ich will das er meinen Datensatz in einer Variablen speichert,
Das macht man im allgemeinen als Dataframe, kann man aber unter geeigneten Umständen auch z. B. als Matrix machen.
Wenn Du dazu schreibst, was Du haben willst, steigen die Chancen, dass jemand weiß, wie man das macht.
Ich will das er meinen Datensatz in einer Variablen speichert, die ich dann mit anderen Datensätzen ihm definiere.
Jetzt hast Du mich verloren. Den Satz verstehe ich nicht.
Später ist meine Idee darauf über die for-Schleife zuzugreifen. Aber das geht halt nicht, weil er dies dann quasie nur als Variablen Vektor "erkennt".
"Variablen Vektor" verstehe ich nicht. Als "variablen Vektor" oder als "Variablenvektor"? Sind nicht alle Vektoren variabel und was soll ein Variablenvektor sein? Tut mir Leid, ich verstehe Dich wirklich nicht.

Vielleicht erklärst Du mal verständlich, was Du machen willst, statt einen Codeabschnitt zu zeigen, der nicht macht, was Du machen willst.
https://stackoverflow.com/help/mcve

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten