Mittelwert mehrer Tageswerte berechnen

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

Moderatoren: EDi, jogo

Antworten
philoo7
Beiträge: 9
Registriert: Mo Nov 09, 2020 9:55 am

Mittelwert mehrer Tageswerte berechnen

Beitrag von philoo7 »

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
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
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Mittelwert mehrer Tageswerte berechnen

Beitrag von jogo »

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
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Mittelwert mehrer Tageswerte berechnen

Beitrag von bigben »

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:

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)
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:

Code: Alles auswählen

# Mittelwerte von gr nach Datum:

aggregate(gleiten$gr, list( gleiten$Date ), FUN = mean)
Das führt dann zu

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
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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten