Seite 1 von 1

Hilfe bei for-Schleife

Verfasst: Sa Apr 03, 2021 9:39 am
von Lili94
Hallo liebes Forum,

ich bin blutige Anfängerin mit R und bräuchte etwas Hilfe bei einer for-Schleife. (Ist das erste mal dass ich mit der Software arbeite, deshalb bitte etwas Verständnis.... jeder fängt nunmal klein an) Jetzt aber zu meiner Frage:

Ich möchte einen Datensatz auswerten, indem ich ihn zunächst in einer for-Schleife sortiere mit sort() und dann möchte ich allerdings die einzelnen sortierten Werte zuordnen können. Daher habe ich mir gedacht im gleichen Zuge in der for-Schleife die names() funktion zu nutzen, um später die sortierten Werte zuornen zu können. Bei mir sieht das ganze so aus:

Code: Alles auswählen

for(i in 1:1128){
  datasort[,i]<-sort(data2[,i],decreasing=TRUE,na.last=TRUE)
  dataname[,i]<-names(datasort)
}
die sortierten Werte werden wie gewünscht in datasort gespeichert, allerdings erhalte ich die Namen nicht in dem dataframe dataname.....

Vielleicht kann mir wer helfen? Ich bin mir sicher nur ich stelle mich hier etwas blöd an....

An alle schöne Ostern und vielen Dank schonmal! :)

LG Lili94

Re: Hilfe bei for-Schleife

Verfasst: Sa Apr 03, 2021 10:52 am
von jogo
Hallo Lili,

willkommen im Forum!
möchtest Du in jeder einzelnen Spalte die Werte sortieren?
Eventuell so:

Code: Alles auswählen

datasort <- as.data.frame(lapply(data2, sort, decreasing=TRUE, na.last=TRUE))
:?:

Gruß, Jörg

Re: Hilfe bei for-Schleife

Verfasst: Sa Apr 03, 2021 11:27 am
von Lili94
Hey Jörg,

das ging ja fix. Vielen Dank!

lapply() funktioniert also statt der Schleife, wenn ich das richtig verstehe.... ist ja nützlich :D geht wahrscheinlich auch schneller in der Ausführung(?).

Dein Ansatz funktioniert super, allerdings kann ich die dann sortierten Werte nicht mehr den ursprünglichen Zeilen zuordnen. Gibt es da eine Möglichkeit zu jeder sortierten Zeile die ursprüngliche Zeile (oder den Zeilenname) hinzuzufügen? Daher meine Idee mit der names() Funktion in der Schleife. Ich möchte zu jedem sortierten Wert wissen, in welcher Zeile er ursprünglich stand? Vielleicht fällt dir eine Lösung ein?

LG Lili

Re: Hilfe bei for-Schleife

Verfasst: Sa Apr 03, 2021 1:03 pm
von jogo
Hallo Lili,
Lili94 hat geschrieben: Sa Apr 03, 2021 11:27 am lapply() funktioniert also statt der Schleife, wenn ich das richtig verstehe.... ist ja nützlich :D geht wahrscheinlich auch schneller in der Ausführung(?).
die ~apply-Funktionen sind die Arbeitstiere für die Bearbeitung der verschiedenen Strukturen.
Mit der Aussage "schneller" bin ich immer vorsichtig -- jedenfalls nicht langsamer.
Dein Ansatz funktioniert super, allerdings kann ich die dann sortierten Werte nicht mehr den ursprünglichen Zeilen zuordnen. Gibt es da eine Möglichkeit zu jeder sortierten Zeile die ursprüngliche Zeile (oder den Zeilenname) hinzuzufügen? Daher meine Idee mit der names() Funktion in der Schleife. Ich möchte zu jedem sortierten Wert wissen, in welcher Zeile er ursprünglich stand? Vielleicht fällt dir eine Lösung ein?
Ich vermute, Du willst eher sowas wie order().

Code: Alles auswählen

sapply(data2, order, decreasing=TRUE, na.last=TRUE)
Gruß, Jörg

Re: Hilfe bei for-Schleife

Verfasst: Sa Apr 03, 2021 1:44 pm
von Lili94
Hallo Jörg,

das hilft mir sehr weiter. Vielen Vielen Dank und ein schönes Wochenende dir noch!

LG Lili