Seite 1 von 1

Niedrigster Mittelwert von sieben aufeinanderfolgenden Werten

Verfasst: Mo Feb 25, 2019 11:27 pm
von Dodo
Hallo R-Community,
Ich habe folgende Dataframe:

Code: Alles auswählen

     Datum Wert
1  01.01.1900  0.3
2  02.01.1900  2.6
3  03.01.1900  2.5
4  04.01.1900 10.9
5  05.01.1900  1.1
6  06.01.1900  4.7
7  07.01.1900  1.6
8  08.01.1900  0.0
9  09.01.1900  2.1
10 10.01.1900 11.4
11 11.01.1900  0.1
12 12.01.1900  0.5
13 13.01.1900  0.4
14 14.01.1900  5.1
15 15.01.1900  1.7
16 16.01.1900  0.2
17 17.01.1900  0.2
18 18.01.1900  2.7
19 19.01.1900 10.0
20 20.01.1900  3.6
21 21.01.1900  3.8
22 22.01.1900  8.9
23 23.01.1900  7.8
24 24.01.1900  1.4
25 25.01.1900  8.5
26 26.01.1900  4.1
27 27.01.1900  7.1
28 28.01.1900  4.8
29 29.01.1900  7.6
30 30.01.1900  8.4
31 31.01.1900  0.3
32 01.02.1900  8.8
33 02.02.1900  7.5
34 03.02.1900  8.8
35 04.02.1900  9.5
36 05.02.1900  7.0
37 06.02.1900  9.3
...
Nun würde ich gerne den kleinsten Mittelwert von 7 aufeinanderfolgenden Tagen berechnen. Es sollen also nicht nur die Mittelwerte von Wert 1 bis 7, 8 bis 14, 15 bis 21 usw. berechnet werden und davon der kleinstes Wert ermittelt werden, sondern die Mittelwerte von allen möglichen 7 aufeinanderfolgenden Werten also z.B. auch von Wert 3 bis 10.
Bei dieser Aufgabe bin ich leider überfragt


vielen Dank für eure Hilfe

mfG Dodo

Re: Niedrigster Mittelwert von sieben aufeinanderfolgenden Werten

Verfasst: Mo Feb 25, 2019 11:56 pm
von jogo
Hallo Dodo,

im Paket zoo gibt es die Funktion rollmean()

Code: Alles auswählen

library("zoo")
rollmean(Dataframe$Wert, 7)
Gruß, Jörg

Re: Niedrigster Mittelwert von sieben aufeinanderfolgenden Werten

Verfasst: Di Feb 26, 2019 7:57 am
von bigben
Dodo hat geschrieben: Mo Feb 25, 2019 11:27 pm und davon der kleinstes Wert ermittelt werden
und nach dem von Jörg benannten rollmean dann which.min.

Wenn Du Dich nach Jörgs Antwort fragst, woher Du wissen sollst, welches der unendlich vielen packages auf CRAN Dein Problem löst: Natürlich kann man so etwas auch selbst programmieren. Man muss das Rad nicht immer neu erfinden, aber vielleicht hilft es Dir beim lernen:

Code: Alles auswählen

wert <- c(0.3, 2.6, 2.5, 10.9, 1.1, 4.7, 1.6, 0, 2.1, 11.4, 0.1, 0.5, 
          0.4, 5.1, 1.7, 0.2, 0.2, 2.7, 10, 3.6, 3.8, 8.9, 7.8, 1.4, 8.5, 
          4.1, 7.1, 4.8, 7.6, 8.4, 0.3, 8.8, 7.5, 8.8, 9.5, 7, 9.3)

gleitendes_mittel <- numeric(0)
for(i in 1:(length(wert)-6))
  gleitendes_mittel[i] <- mean(wert[i:(i+6)])



kleinstes <- which.min(gleitendes_mittel)
print(kleinstes)

plot(gleitendes_mittel, type="b")
abline(v=kleinstes, lty=2); axis(side = 3, at = kleinstes)
abline(h=gleitendes_mittel[kleinstes], lty=2); axis(side = 4, at = round(gleitendes_mittel[kleinstes], 2))
HTH,
Bernhard

Re: Niedrigster Mittelwert von sieben aufeinanderfolgenden Werten

Verfasst: Di Feb 26, 2019 8:08 pm
von Dodo
Vielen Dank euch:)