Hilfe bei for-Schleife

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
Lili94
Beiträge: 6
Registriert: Sa Apr 03, 2021 9:23 am

Hilfe bei for-Schleife

Beitrag 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
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hilfe bei for-Schleife

Beitrag 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
Lili94
Beiträge: 6
Registriert: Sa Apr 03, 2021 9:23 am

Re: Hilfe bei for-Schleife

Beitrag 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
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hilfe bei for-Schleife

Beitrag 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
Lili94
Beiträge: 6
Registriert: Sa Apr 03, 2021 9:23 am

Re: Hilfe bei for-Schleife

Beitrag von Lili94 »

Hallo Jörg,

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

LG Lili
Antworten