neue Variable hinzufügen

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

Moderatoren: EDi, jogo

Antworten
gming11
Beiträge: 27
Registriert: Do Feb 25, 2021 10:37 am

neue Variable hinzufügen

Beitrag von gming11 »

Liebe Leute,

in einer Aufgabe sollte ich eine neue Variable definieren, welche ein Quotient in Abhängigkeit von der Zeit und des Basiswerts ist.

Mein longitudinaler Datensatz schaut wie folgt aus
  1. ID- Jahr - Temperatur
  • 1 1997 - 20
  • 1 1998 - 22
  • 1 1999 - 21
...
  • 2 1997 - 23
  • 2 1998 - 24
...

Natürlich mehr Messzeitpunkte aber im Grunde sollte eine neue Variable jeweils vom Basis-Jahr 1997 ausgehend den Quotienten der Temperatur (im ersten Beispiel 22/20 bzw. 21/20 wobei 20 ja das Basis-Jahr 1997 repräsentiert und dies für die nächsten 20 Jahre, die ich hier nur ausgelassen haben. Wie im kurzen Ausschnitt dargestellt gibt es verschiedene IDs also Messpunkte 1-15, wobei der Startpunkt immer das Jahr 1997 ist.

Geht dies elegant mit einer For-Schleife oder wie ist hier sinnvoll vorzugehen?
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: neue Variable hinzufügen

Beitrag von Athomas »

https://stackoverflow.com/questions/148 ... s-by-group
Dort die erste Antwort, denn die benutzt data.table :) !
Vorher nach ID und Jahren sortieren!
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: neue Variable hinzufügen

Beitrag von bigben »

...und ich verstehe die Frage anders, als ich glaube, dass Athomas die Frage verstanden hat. Um solche Missverständnisse auszuräumen gibt es einen ganz einfachen Weg: Du stellst Beispieldaten zur Verfügung, berechnest von Hand, wie Du Dir das Ergebnis vorstellst und stellst auch die Sollwerte im Forum ein.

Beispieldaten und Wunschergebnis bitte nicht wie oben als Text, auch nicht als Bildschirmfoto, sondern als R-Code. So zum Beispiel könnte das aussehen:

Code: Alles auswählen

bsp <- data.frame(id = gl(3,5),
                  jahr = rep(1997:2001, 3),
                  temperatur = c(20, 22, 21, 21, 20,  23, 24, 25, 39, 40, 
                                 10, 12, 10, 16,  5))
print(bsp)
Das kann jeder dann schnell in seine Konsole kopieren und erdachte Lösungsmöglichkeiten selbst ausprobieren. FAlls Du eine Lösung suchst, die mit Missings umgehen kann, dann sollten auch NA im Beispieldatensatz vorkommen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: neue Variable hinzufügen

Beitrag von Athomas »

...und ich verstehe die Frage anders, als ich glaube, dass Athomas die Frage verstanden hat.
Ja, ich liege falsch! Ich dachte, er wolle den Quotienten zweier aufeinander folgender Jahre berechnen :oops: ...
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: neue Variable hinzufügen

Beitrag von bigben »

Wer weiß, ohne reproduzierbares Minimalbeispiel kann es immer auch ein Missverständnis in die andere Richtung sein. Wenn gming11 Beispieldaten in R hat, die sie/er manuell zum Vergleichen angeschaut hat, kann sie/er prüfen, ob das hier in die richtige Richtung geht:

Code: Alles auswählen

library(data.table)
setDT(bsp)
bsp[, relativ := temperatur/first(temperatur), by = id]
print(bsp)
oder vielleicht eher sowas hier?

Code: Alles auswählen

bsp <- data.frame(id = gl(3,5),
                  jahr = rep(1997:2001, 3),
                  temperatur = c(20, 22, 21, 21, 20,  23, 24, 25, 26, 27, 
                                 10, 12, 10, 16,  5))
bsp$relativ <- unlist(tapply(bsp$temperatur, bsp$id, function(x) x/x[1]))
print(bsp)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
gming11
Beiträge: 27
Registriert: Do Feb 25, 2021 10:37 am

Re: neue Variable hinzufügen

Beitrag von gming11 »

Hallo ,

vielen lieben Dank für eure Antworten letzteres war genau so etwas wie ich es gebraucht habe Danke für den Tipp mit Data Table! Und sorry für meine schlechte Darstellungsform, es war mein erster Post hier, ich werde zukünftig in Beispielloses arbeiten danke!!
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: neue Variable hinzufügen

Beitrag von bigben »

Alles gut, wenn wir nicht wollten, dass Du weitere Fragen stellst, würden wir nicht so ausführlich auf den Beispieldaten und dem Coder herumreiten. Du wirst bei zukünftigen Fragen sehen, dass es hilft, treffende und brauchbare Antworten zu bekommen.

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