For Loop: Nicht mit Wert 1 starten, sondern mit Wert 120

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

Moderatoren: EDi, jogo

Antworten
Xtra14
Beiträge: 8
Registriert: Fr Nov 13, 2020 12:47 pm

For Loop: Nicht mit Wert 1 starten, sondern mit Wert 120

Beitrag von Xtra14 »

Servus zusammen,

ich habe folgendes Problem:

Ich würde die unten stehende For Loop gerne für den x erst ab dem Wert 120 starten und nicht ab Wert 1. Wenn ich die Sequenz allerdings auf "120:370" ändere, funktioniert es nicht mehr.

Sorry bin absoluter Anfänger mit R, würde mich über jegliche Hilfe sehr freuen. Danke im Voraus!

Beste Grüße,
Lars

Code: Alles auswählen

for (x in 1:370) {
    Matrix1[,] <- fun1(x)
}
Zuletzt geändert von jogo am Fr Nov 13, 2020 12:52 pm, insgesamt 2-mal geändert.
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
jogo
Beiträge: 2093
Registriert: Fr Okt 07, 2016 8:25 am

Re: For Loop: Nicht mit Wert 1 starten, sondern mit Wert 120

Beitrag von jogo »

Hallo Lars,

willkommen im Forum!
Ich sehe jetzt nicht, warum

Code: Alles auswählen

for (x in 120:370)  ...
nicht funktionieren sollte.

Ansonsten ist es schon etwas seltsam, was Du in der Schleife betreibst
(bei jedem Durchlauf wird die gesamte Matrix überschrieben).
Die ganze Schleife ist äquivalent mit:

Code: Alles auswählen

Matrix1[,] <- fun1(370)
bzw.

Code: Alles auswählen

Matrix1 <- fun1(370)
Gruß, Jörg
Xtra14
Beiträge: 8
Registriert: Fr Nov 13, 2020 12:47 pm

Re: For Loop: Nicht mit Wert 1 starten, sondern mit Wert 120

Beitrag von Xtra14 »

Hallo Jörg,

ich hatte nur einen Teil aus der Formel kopiert - deswegen sieht es seltsam aus. Mein Fehler - sorry!

Aber Du hast mir schon geholfen. In der Matrix waren nur die Zeilen 1-120 mit NA belegt und mehr wurde nicht angezeigt. In der Gesamtansicht wurde nach der Zeile aber die Funktion reinkopiert. Du hattest also Recht, es klappt, danke!

Code: Alles auswählen

for (x in 1:10) {
  for (y in 120:370) {
    Matrix1[y,x] <- fun1(x,y)
  }
}
Das ist der gesamte Code.

Danke dir!
jogo
Beiträge: 2093
Registriert: Fr Okt 07, 2016 8:25 am

Re: For Loop: Nicht mit Wert 1 starten, sondern mit Wert 120

Beitrag von jogo »

Hallo Lars,

kann denn die Funktion fun1() bei dem Argument y auch einen Vektor verarbeiten?
Wenn ja, dann lässt sich Dein Code dramatisch verkürzen.

Gruß, Jörg
Xtra14
Beiträge: 8
Registriert: Fr Nov 13, 2020 12:47 pm

Re: For Loop: Nicht mit Wert 1 starten, sondern mit Wert 120

Beitrag von Xtra14 »

Da bin ich ehrlich gesagt schon überfragt.

Wie sähe die Funktion denn dann aus? Und was macht es für einen Unterschied?
jogo
Beiträge: 2093
Registriert: Fr Okt 07, 2016 8:25 am

Re: For Loop: Nicht mit Wert 1 starten, sondern mit Wert 120

Beitrag von jogo »

Hallo Lars,

was liefert denn

Code: Alles auswählen

fun1(1, 120:370)
... eventuell (hoffentlich) das gleiche wie

Code: Alles auswählen

sapply(120:370, function(y) fun1(1, y))
Gruß, Jörg
Antworten