Ich habe auch zunächst fread mit den Setztungen von sep und dec benutzt, aber daraufhin ist RStudio abgestürzt...
Deshalb habe ich die sichere - aber umständliche - Variante gewählt!
Heute morgen funktionierte fread allerdings wie gewünscht, der Absturz hat offenbar andere Gründe gehabt!
Aus stündlichen Werten einen Tagesmittelwert erstellen
Re: Aus stündlichen Werten einen Tagesmittelwert erstellen
Vielen, Vielen Dank Athomas!Athomas hat geschrieben: ↑Do Nov 19, 2020 8:55 pm Du kannst die Daten als Textdatei (.txt, .csv) anhängen, das würde es etwas bequemer machen.
Den Pfad musst Du natürlich noch auf Deine Situation anpassen:Code: Alles auswählen
library(data.table) Daten <- data.table(read.table("P:/R/aggregieren/Basis.txt", header=TRUE, sep=";", dec=",", stringsAsFactors = FALSE)) Daten[ , nurDatum:=as.Date(substr(Time, 1, 10), format="%d.%m.%Y")] Daten[ , .(meanPress=mean(hPa), sum_mm_hell=sum(mm_hell)), by=nurDatum]
Das hat super funktioniert. Ich hatte allerdings für jeden Tag immer noch 24 rows, die identisch waren. Damit meine ich das ich 24 Mal vom gleichen Tag die Mittelwerte zu den Spalten hatte. Als Ergänzung zu deinem Code habe ich mit dyplr die Redundanzen entsorgt:
Code: Alles auswählen
data <- mydata[!duplicated(mydata$nurDatum), ]
Vielen, vielen Dank nochmals und ich würde mich über eine kurze Erklärung sehr freuen!
Liebe Grüße
Zuletzt geändert von jogo am Fr Nov 20, 2020 3:08 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
Re: Aus stündlichen Werten einen Tagesmittelwert erstellen
Ich sach mal: das kann nicht sein!Ich hatte allerdings für jeden Tag immer noch 24 rows, die identisch waren.
Aaah, würg! tidyverse ! Und (s.o.) in meinen Augen gar nicht erforderlich...Als Ergänzung zu deinem Code habe ich mit dyplr die Redundanzen entsorgt:
Damit nehme ich die ersten zehn Zeichen deines Timestamps (der ja zu dem Zeitpunkt als Zeichenkette vorliegt) und interpretiere ihn gemäß des folgenden format-Strings als Datum. Die Zeitangabe wird dadurch ingoriert, interessiert in diesem Zusammenhang aber auch nicht.Ich habe noch eine Frage zu deinem Code, damit ich den komplett verstehe. Das ist dieser Teil: substr(Time, 1, 10).
Re: Aus stündlichen Werten einen Tagesmittelwert erstellen
Stimmt du hast Recht. In deinem Beispielskript gibt es keine Redundanzen. Bei meinem aber schon. Habe ich was falsch angegeben? Ich habe keine Unterschiede zwischen deinem Beispiel und meinem gefunden. Vielleicht übersehe ich aber auch etwas.Athomas hat geschrieben: ↑Fr Nov 20, 2020 3:38 pmIch sach mal: das kann nicht sein!Ich hatte allerdings für jeden Tag immer noch 24 rows, die identisch waren.Aaah, würg! tidyverse ! Und (s.o.) in meinen Augen gar nicht erforderlich...Als Ergänzung zu deinem Code habe ich mit dyplr die Redundanzen entsorgt:Damit nehme ich die ersten zehn Zeichen deines Timestamps (der ja zu dem Zeitpunkt als Zeichenkette vorliegt) und interpretiere ihn gemäß des folgenden format-Strings als Datum. Die Zeitangabe wird dadurch ingoriert, interessiert in diesem Zusammenhang aber auch nicht.Ich habe noch eine Frage zu deinem Code, damit ich den komplett verstehe. Das ist dieser Teil: substr(Time, 1, 10).
Code: Alles auswählen
Daten[ , .(sum_mm_hell=sum(mm_hell), max_mm_hell=max(mm_hell), min_mm_hell=min(mm_hell),
mean_deg=mean(deg), max_deg=max(deg), min_deg=min(deg),
mean_m.s=mean(m.s), max_m.s=max(m.s), min_m.s=min(m.s),
mean_t=mean(t), max_t=max(t), min_t=min(t),
mean_Luftfeu=mean(Luftfeu), max_Luftfeu=(Luftfeu), min_Luftfeu=min(Luftfeu),
mean_Druck=mean(hPa), max_Druck=max(hPa), min_Druck=min(hPa),
sum_mmV=sum(mm_V), max_mmV=max(mm_V), min_mmV=min(mm_V),
sum_W.m=sum(W.m), max_W.m=max(W.m), min_W.m=min(W.m)),
by=nurDatum]
Zuletzt geändert von jogo am Mo Nov 23, 2020 8:24 am, insgesamt 1-mal geändert.
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
Re: Aus stündlichen Werten einen Tagesmittelwert erstellen
Code: Alles auswählen
max_Luftfeu=(Luftfeu)
Re: Aus stündlichen Werten einen Tagesmittelwert erstellen
Ich habe mir angewöhnt, unübersichtlichen Programmtext durch Einfügen von Leerzeichen bzw. Zeilenumbrüchen etwas zu strukturieren.
Das macht sich spätestens dann bezahlt, wenn man sich (oder sogar jemand anders) nach einer Weile das Programm nochmal anschaut.
Auch bei der Fehlersuche ist das hilfreich - ich kann es nur empfehlen!
Das macht sich spätestens dann bezahlt, wenn man sich (oder sogar jemand anders) nach einer Weile das Programm nochmal anschaut.
Auch bei der Fehlersuche ist das hilfreich - ich kann es nur empfehlen!
Code: Alles auswählen
Daten[ , .(sum_mm_hell = sum(mm_hell), max_mm_hell = max(mm_hell), min_mm_hell = min(mm_hell),
mean_deg = mean(deg), max_deg = max(deg), min_deg = min(deg),
mean_m.s = mean(m.s), max_m.s = max(m.s), min_m.s = min(m.s),
mean_t = mean(t), max_t = max(t), min_t = min(t),
mean_Luftfeu = mean(Luftfeu), max_Luftfeu = (Luftfeu), min_Luftfeu = min(Luftfeu),
mean_Druck = mean(hPa), max_Druck = max(hPa), min_Druck = min(hPa),
sum_mmV = sum(mm_V), max_mmV = max(mm_V), min_mmV = min(mm_V),
sum_W.m = sum(W.m), max_W.m = max(W.m), min_W.m = min(W.m)),
by=nurDatum]