Jahresdurchschnitte an verschiedenen Stationen
Jahresdurchschnitte an verschiedenen Stationen
Hallo Leute,
ich bin sowohl neu im Forum, als auch in dem Programm, also erstmal ein Hallo in die Runde Ich fange gerade mit meiner Bachelorarbeit an und hantiere dort mit großen Datenmengen, weshalb mir mein Prof nahegelegt hat die Auswertungen mit R zu machen. An sich plotte ich hauptsächlich Messdaten gegeneinander, was auch ganz gut klappt, bei manchen sind die Plots aufgrund der großen Datenmenge aber relativ unübersichtlich, weshalb ich gerne nur die Jahresdurchschnitte auftragen würde.
An sich bestehen meinen Daten aus einem großen Dataframe in dem u.A. die Spalten "Station", "Date", "Breitengrad", "Längengrad" und "O18" liegen. Nun würde ich gerne eine Liste erstellen, in der für jede Station ein einzelner Dataframe liegt, der für jedes Jahr den Durchschnitt der gemessenen O18-Werte(sind 4-12 Messungen pro Jahr) angibt und gleichzeitig noch die Längen- und Breitengrade der Stationen enthält.
An der Stelle komme ich leider nicht wirklich weiter, ich würde mich also sehr über Hilfe freuen!
Mit freundlichen Grüßen
Klaus
ich bin sowohl neu im Forum, als auch in dem Programm, also erstmal ein Hallo in die Runde Ich fange gerade mit meiner Bachelorarbeit an und hantiere dort mit großen Datenmengen, weshalb mir mein Prof nahegelegt hat die Auswertungen mit R zu machen. An sich plotte ich hauptsächlich Messdaten gegeneinander, was auch ganz gut klappt, bei manchen sind die Plots aufgrund der großen Datenmenge aber relativ unübersichtlich, weshalb ich gerne nur die Jahresdurchschnitte auftragen würde.
An sich bestehen meinen Daten aus einem großen Dataframe in dem u.A. die Spalten "Station", "Date", "Breitengrad", "Längengrad" und "O18" liegen. Nun würde ich gerne eine Liste erstellen, in der für jede Station ein einzelner Dataframe liegt, der für jedes Jahr den Durchschnitt der gemessenen O18-Werte(sind 4-12 Messungen pro Jahr) angibt und gleichzeitig noch die Längen- und Breitengrade der Stationen enthält.
An der Stelle komme ich leider nicht wirklich weiter, ich würde mich also sehr über Hilfe freuen!
Mit freundlichen Grüßen
Klaus
Re: Jahresdurchschnitte an verschiedenen Stationen
Hallo Klaus,
willkommen im Forum!
Kannst Du uns wenigstens die Struktur der Daten zeigen, also den Output von
Noch besser ist natürlich ein reproduzierbares Beispiel: viewtopic.php?f=20&t=11
... und wenn es einfach nur der zerhackte Dataframe sein soll:und zusätzlich einen Dataframe mit den Ergebnissen zu allen Stationen, wäre das akzeptabel?
Gruß, Jörg
willkommen im Forum!
Kannst Du uns wenigstens die Struktur der Daten zeigen, also den Output von
Code: Alles auswählen
str(DeinDataframe)
Noch besser ist natürlich ein reproduzierbares Beispiel: viewtopic.php?f=20&t=11
... und wenn es einfach nur der zerhackte Dataframe sein soll:
Code: Alles auswählen
L <- split(DeinDataframe, DeinDataframe$Station)
Gruß, Jörg
Re: Jahresdurchschnitte an verschiedenen Stationen
Hallo Jörg,
danke für die Antwort und entschuldige, mir war noch nicht ganz klar wie ich das Problem hier am besten poste
Hier sind mal meine Daten auf die entscheidenden Spalten reduziert, wie man sieht wurden die Messungen auch nicht konstant durchgeführt.
Gruß, Klaus
danke für die Antwort und entschuldige, mir war noch nicht ganz klar wie ich das Problem hier am besten poste
Hier sind mal meine Daten auf die entscheidenden Spalten reduziert, wie man sieht wurden die Messungen auch nicht konstant durchgeführt.
Code: Alles auswählen
> head(all_GNIP_data_short, 5)
Site Latitude Longitude Altitude Date O18 H2 Precipitation
1 KABUL (KARIZIMIR) 34.57 69.21333 1860 1962-01-15 -15.0 -98.4 6
2 KABUL (KARIZIMIR) 34.57 69.21333 1860 1962-02-15 -10.4 -53.3 2
3 KABUL (KARIZIMIR) 34.57 69.21333 1860 1962-03-15 NA NA 67
4 KABUL (KARIZIMIR) 34.57 69.21333 1860 1962-04-15 NA NA 84
5 KABUL (KARIZIMIR) 34.57 69.21333 1860 1962-05-15 NA NA 25
Ja klar, das hört sich fast am simplesten an.und zusätzlich einen Dataframe mit den Ergebnissen zu allen Stationen, wäre das akzeptabel?
Gruß, Klaus
Re: Jahresdurchschnitte an verschiedenen Stationen
Hallo Klaus,
vonin Deine nächste Nachricht kopieren?
Gruß, Jörg
ja, das ist schon recht informativ. Jetzt muss aus dem Datum nur noch das Jahr bestimmt werden. Kannst Du bitte in gleicher Weise den outputmantmach hat geschrieben: ↑Fr Mai 03, 2019 11:23 am Hier sind mal meine Daten auf die entscheidenden Spalten reduziert, wie man sieht wurden die Messungen auch nicht konstant durchgeführt.
Code: Alles auswählen
> head(all_GNIP_data_short, 5) Site Latitude Longitude Altitude Date O18 H2 Precipitation 1 KABUL (KARIZIMIR) 34.57 69.21333 1860 1962-01-15 -15.0 -98.4 6 2 KABUL (KARIZIMIR) 34.57 69.21333 1860 1962-02-15 -10.4 -53.3 2 3 KABUL (KARIZIMIR) 34.57 69.21333 1860 1962-03-15 NA NA 67 4 KABUL (KARIZIMIR) 34.57 69.21333 1860 1962-04-15 NA NA 84 5 KABUL (KARIZIMIR) 34.57 69.21333 1860 1962-05-15 NA NA 25
von
Code: Alles auswählen
str(all_GNIP_data_short)
Gruß, Jörg
Re: Jahresdurchschnitte an verschiedenen Stationen
Das wäre folgendes
Code: Alles auswählen
> str(all_GNIP_data_short)
'data.frame': 74431 obs. of 8 variables:
$ Site : chr "KABUL (KARIZIMIR)" "KABUL (KARIZIMIR)" "KABUL (KARIZIMIR)" "KABUL (KARIZIMIR)" ...
$ Latitude : num 34.6 34.6 34.6 34.6 34.6 ...
$ Longitude : num 69.2 69.2 69.2 69.2 69.2 ...
$ Altitude : num 1860 1860 1860 1860 1860 1860 1860 1860 1860 1860 ...
$ Date : POSIXct, format: "1962-01-15" "1962-02-15" "1962-03-15" ...
$ O18 : num -15 -10.4 NA NA NA NA NA NA NA NA ...
$ H2 : num -98.4 -53.3 NA NA NA NA NA NA NA NA ...
$ Precipitation: num 6 2 67 84 25 7 NA NA NA 5 ...
Re: Jahresdurchschnitte an verschiedenen Stationen
Hallo Klaus,
schau man, ob dies funktioniert:
https://stackoverflow.com/questions/350 ... ply-family
Mit data.table könnte es so aussehen:
Gruß, Jörg
schau man, ob dies funktioniert:
Code: Alles auswählen
aggregate(cbind(O18, H2, Precipitation) ~ Site + Latitude + Longitude + substr(Date, 1, 4), data=all_GNIP_data_short, FUN=mean)
Mit data.table könnte es so aussehen:
Code: Alles auswählen
library("data.table")
setDT(all_GNIP_data_short)
all_GNIP_data_short[, lapply(.SD, mean), by=.(Site, Latitude, Longitude, substr(Date, 1, 4)), .SDcols=c("O18", "H2", "Precipitation")]
Re: Jahresdurchschnitte an verschiedenen Stationen
Hallo Jörg,
super, vielen vielen Dank, der Code bringt mir genau das was ich wollte
Gruß, Klaus
super, vielen vielen Dank, der Code bringt mir genau das was ich wollte
Die aggregate-Funktion war mir noch gar nicht bekannt.Code: Alles auswählen
aggregate(cbind(O18, H2, Precipitation) ~ Site + Latitude + Longitude + substr(Date, 1, 4), data=all_GNIP_data_short, FUN=mean)
Gruß, Klaus