Hallo alle zusammen,
ich schreibe meine Masterarbeit über Gleitraten von Gleitschneelawinen. Dazu habe ich Daten von 40 Gleitraten-Datensätzen (Gleitschuhen), die alle unterschiedliche Tagesgleitraten zu unterschiedlichen Zeiten haben. Nun möchte ich aus diesen 40 Datensätzen für jeden Tag das Mittel aller Datensätze ausrechnen. Ich habe leider keine Ahnung, wie ich das anstellen kann. Als Beispiel habe ich 2 Datensätze angehängt. gr beschreibt dabei die Gleitrate. Vielleicht hat ja jemand eine Idee. Wäre sehr dankbar
Liebe Grüße
Phillip
Mittelwert mehrer Tageswerte berechnen
Mittelwert mehrer Tageswerte berechnen
- Dateianhänge
-
- 129103_103_Gleitrate_SGS_2014-2015.xlsx
- (11.6 KiB) 67-mal heruntergeladen
-
- 129091_091_Gleitrate_SGS_2014-2015.xlsx
- (10.32 KiB) 65-mal heruntergeladen
Re: Mittelwert mehrer Tageswerte berechnen
Hallo Phillip,
kannst Du bitte zeigen, wie Du die Dateien in R einliest?
Der Rest müsste mit tapply() oder aggregate() zu schaffen sein.
https://stackoverflow.com/questions/350 ... ply-family
Gruß, Jörg
kannst Du bitte zeigen, wie Du die Dateien in R einliest?
Der Rest müsste mit tapply() oder aggregate() zu schaffen sein.
https://stackoverflow.com/questions/350 ... ply-family
Gruß, Jörg
Re: Mittelwert mehrer Tageswerte berechnen
Hallo Phillip,
zunächst müssen die Daten eingelesen werden, wobei Du darauf achten musst, dass manchmal ein Punkt und manchmal ein Komma als Dezimaltrenner verwendet wurde und dass das Datum wirklich als Datumsformat erkannt wird. Dann müssen die Daten der verschiedenen Dateien zusammenfasst werden.
Ich kürze das für ein Beispiel vorläufig mal so ab:
Den Durchschnitt aller gr Werte für jedes Datum zu errechnen nennt man im Fachjargon "die Daten aggregieren". R bietet gefühlt tausend Möglichkeiten, eine davon ist die Funktion aggregate:
Das führt dann zu
und da kann man ja mal nachrechnen: Für den 2.10.2014 sagt die eine Datei gr = 7,85, die andere gr = 23,55 und aggregate sagt, der Mittelwert ist 15,7.
LG,
Bernhard
zunächst müssen die Daten eingelesen werden, wobei Du darauf achten musst, dass manchmal ein Punkt und manchmal ein Komma als Dezimaltrenner verwendet wurde und dass das Datum wirklich als Datumsformat erkannt wird. Dann müssen die Daten der verschiedenen Dateien zusammenfasst werden.
Ich kürze das für ein Beispiel vorläufig mal so ab:
Code: Alles auswählen
gleiten <- read.table(header = TRUE, dec = ",", text =
"Date Time corImpulses Distance AccuDist. n gr
02.10.2014 11:03:56 1 0.785 0.785 1 7,85
08.10.2014 13:51:12 0 0.785 1.57 1 7,85
23.10.2014 13:00:04 0 0.785 2.355 3 23,55
24.10.2014 00:38:51 1 0.785 4.71 2 15,7
25.10.2014 09:47:07 1 0.785 6.28 3 23,55
26.10.2014 01:57:17 0 0.785 8.635 3 23,55
27.10.2014 12:02:59 1 0.785 10.99 2 15,7
28.10.2014 06:22:03 1 0.785 12.56 4 31,4
29.10.2014 04:52:14 1 0.785 15.7 5 39,25
30.10.2014 03:04:01 0 0.785 19.625 4 31,4
31.10.2014 01:43:28 0 0.785 22.765 4 31,4
02.10.2014 10:49:16 0 0.785 0.785 3 23,55
08.10.2014 11:32:02 1 0.785 3.14 1 7,85
23.10.2014 00:18:10 0 0.785 3.925 8 62,8
24.10.2014 05:19:53 0 0.785 10.205 3 23,55
25.10.2014 02:20:00 1 0.785 12.56 4 31,4
26.10.2014 08:00:29 1 0.785 15.7 6 47,1
27.10.2014 06:33:32 1 0.785 20.41 4 31,4
28.10.2014 05:52:14 1 0.785 23.55 4 31,4
29.10.2014 03:14:24 1 0.785 26.69 5 39,25
30.10.2014 00:25:15 1 0.785 30.615 4 31,4
31.10.2014 03:11:10 1 0.785 33.755 3 23,55")
gleiten$Date <- as.Date(gleiten$Date, format = "%d.%m.%Y")
str(gleiten)
Code: Alles auswählen
# Mittelwerte von gr nach Datum:
aggregate(gleiten$gr, list( gleiten$Date ), FUN = mean)
Code: Alles auswählen
> aggregate(gleiten$gr, list( gleiten$Date ), FUN = mean)
Group.1 x
1 2014-10-02 15.700
2 2014-10-08 7.850
3 2014-10-23 43.175
4 2014-10-24 19.625
5 2014-10-25 27.475
6 2014-10-26 35.325
7 2014-10-27 23.550
8 2014-10-28 31.400
9 2014-10-29 39.250
10 2014-10-30 31.400
11 2014-10-31 27.475
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte