for Schleife mit Inkrement von 0.1

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

Moderatoren: EDi, jogo

Antworten
DonnieDarko
Beiträge: 7
Registriert: So Mai 26, 2019 8:13 pm

for Schleife mit Inkrement von 0.1

Beitrag von DonnieDarko »

Hallo zusammen,

Ich habe folgendes vereinfachtes Problem:

Code: Alles auswählen

p <- seq(5,10,0.1)

for(i in seq(from=0, to=4.9, by=0.1)){
  p[i] = i
}
Ich will die einzelnen i-Werte nun an die jeweilige Stelle im Vektor p bringen
Beispiel:

i = 0 --> Wert 0 soll an die erste Stelle des Vektors p gelangen
i = 0.1 --> Wert 0.1 soll an die erste Stelle des Vektors p gelangen

Wie kann ich dies bezwecken?
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: for Schleife mit Inkrement von 0.1

Beitrag von bigben »

Hallo!
DonnieDarko hat geschrieben: Di Mai 28, 2019 4:40 pm i = 0 --> Wert 0 soll an die erste Stelle des Vektors p gelangen
i = 0.1 --> Wert 0.1 soll an die erste Stelle des Vektors p gelangen
Warum sollte man nacheinander verschiedene Werte alle an die erste Stelle des Vektors setzen? Die überschreiben sich doch dann alle? Ich glaube Du solltest Deine Fragestellung nochmal überarbeiten, damit man versteht, was Du eigentlich als Ergebnis haben willst.

In jedem Fall sind "Stellen im Vektor" immer ganzzahlig.

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 Inkrement von 0.1

Beitrag von bigben »

Oder möchtest Du die der Reihe nach an die erste Stelle von p setzen ohne zu überschreiben, sondern so, dass die alten Werte jeweils nach hinten rücken und vorne Platz machen? Das würde sich dann ohne Schleife leichter so lösen lassen:

Code: Alles auswählen

p <- seq(5,10,0.1)
p <- c(rev(seq(from=0, to=4.9, by=0.1)), p)
Wenn es das nicht ist, bitte Frage besser formulieren.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
DonnieDarko
Beiträge: 7
Registriert: So Mai 26, 2019 8:13 pm

Re: for Schleife mit Inkrement von 0.1

Beitrag von DonnieDarko »

Hallo Bernhard,

Entschuldige bei meiner Frage hat sich ein Tippfehler eingeschlichen!

Es war so gedacht

i = 0: erster Wert des Vektors p wird zu 0
i = 0.1: zweiter Wert des Vektors p wird zu 0.1
i = 0.2: dritter Wert des Vektors p wird zu 0.2

Schöne Grüße
Donnie
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: for Schleife mit Inkrement von 0.1

Beitrag von jogo »

Hallo Donnie,

mir ist nicht klar, was Du erreichen möchtest. ... und warum nicht:

Code: Alles auswählen

i <- seq(0, 3, by=0.1)
p <- seq(0, 3, by=0.1) ## hier hätte dann auch p <- i ausgereicht
Gruß, Jörg
DonnieDarko
Beiträge: 7
Registriert: So Mai 26, 2019 8:13 pm

Re: for Schleife mit Inkrement von 0.1

Beitrag von DonnieDarko »

Hallo,

Ich habe versucht mein Beispiel etwas runterzubrechen, da ich das ursprüngliche Beispiel / Code nicht posten kann. In der for - Schleife berechne ich normalerweise etwas anderes und will dies speichern. Nun habe ich mit einem leichteren Code, den ich oben gepostet habe, das Problem identifiziert und dies liegt in dem abspeichern der berechneten Werte bei einem Inkrement von 0.1.

Schönen Gruß und danke für die Hilfe
Donnie
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: for Schleife mit Inkrement von 0.1

Beitrag von bigben »

Hallo Donnie,

Dein Ziel, das Problem zu vereinfachen ist lobenswert. Allein, es ist unverständlich geworden. Schwer zu sagen, was die Besonderheiten der Vereinfachung und was die Anforderungen des Originalproblems sind:

Wenn Du einfach

Code: Alles auswählen

p[i*10+1] <- ...
nimmst, dann funktioniert es in der Vereinfachung. Funktioniert es auch im echten Fall?

Oder Du wählst eine ganzzahlige Laufvariable für die Schleife etwa so:

Code: Alles auswählen

p <- seq(5,10,0.1)  # davon bleibt am Schluss nur der letzte Wert übrig

zielwerte <- seq(from=0, to=4.9, by=0.1)

for(i in 1:length(zielwerte)){
  p[i] = zielwerte[i]   # i ist jetzt ganzzahlig und zielwerte[i] ist das, was früher mal i war
}
Bitte erkläre das Problem nochmal neu und etwas näher am echten Problem.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
DonnieDarko
Beiträge: 7
Registriert: So Mai 26, 2019 8:13 pm

Re: for Schleife mit Inkrement von 0.1

Beitrag von DonnieDarko »

Hallo Bernhard,

Vielen Dank für deine Hilfe! So funktioniert es auch bei mir in meinem Beispiel.
bigben hat geschrieben: Mi Mai 29, 2019 7:29 am Wenn Du einfach

Code: Alles auswählen

p[i*10+1] <- ...
nimmst, dann funktioniert es in der Vereinfachung. Funktioniert es auch im echten Fall?
Entschuldige, dass ich das Problem anfangs nicht richtig erklärt hatte.

Besten Gruß
Donnie
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: for Schleife mit Inkrement von 0.1

Beitrag von bigben »

Schön, dass es jetzt läuft. Übrigens hat keiner gesagt, dass eine gute Problemdarstellung leicht zu machen sei.
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten