Monatsmittel

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

Moderatoren: EDi, jogo

saskiasal47

Monatsmittel

Beitrag von saskiasal47 »

Hallo ihr Lieben,

ich komme an einer Stelle einer Aufgabe nicht weiter und wäre super dankbar, wenn mir jemand helfen würde :D
Ich habe in einer Tabelle mit mehreren meteorologische Daten (Niederschlag, mittlere Lufttemperatur, max. Lufttemperatur usw.) für ein ganzes Jahr( es wurde jeden Tag nur ein Mal gemessen). Nun soll ich für die mittlere Lufttemperatur, für alle 12 Monate, das Monatsmittel berechnen. Als Hinweis wurde mir gegeben, dass es hilfreich sei, die Tageswerte der einzelnen Monate in eine 2-dimensionale Matrixstruktur (Zeilen = Tage, Spalten = Monate) aufzuteilen.
Aber wie mache ich das am besten? Mit Hilfe des matrix-Befehls? und wie berechne ich die Monatsmittel ohne alle Tage einzutippen?

Ich bedanke mir schon Mal für eure Hilfe

Liebe Grüße
Saskia :P
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Monatsmittel

Beitrag von jogo »

Hallo Saskia,

bitte zeig doch mal, wie die Daten aussehen:

Code: Alles auswählen

str(DeinDataframe)
head(DeinDataframe)
... den output dann in Deine nächste Nachricht kopieren.

Gruß, Jörg
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Monatsmittel

Beitrag von bigben »

saskiasal47 hat geschrieben: Mo Jun 19, 2017 10:20 am Als Hinweis wurde mir gegeben, dass es hilfreich sei, ...
Hallo Saskia,

das klingt schwer nach Hausaufgabe. Hausaufgaben haben hier im Forum zweierlei Besonderheiten.
1. erwarten wir, dass Du schreibst, was Du Dir schon selbst gedacht und was Du selbst versucht hast, bevor Du von uns einen Hinweis in die richtige Richtung bekommst.
2. gibt es oft mehrere Wege, solche Probleme zu lösen. Dein Lehrer hat diese aber nicht alle schon unterrichtet. Es hilft also, wenn Du ein wenig dazu schreibst, was Du schon weißt und kannst. Das vorliegende Problem können wir wahrscheinlich über tapply lösen, wir können das über eine for-Schleife lösen, wir können das mit which() lösen und wir können das als data.table lösen oder mit dplyr.
Anhand Deines eigenen Ansatzes oder durch eine Schilderung des zuletzt durchgenommenen Stoffs ist es vielleicht möglich die Lösung zu suchen, die Dein Lehrer im Sinn hatte.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
saskiasal47

Re: Monatsmittel

Beitrag von saskiasal47 »

m k M
1 Monat Tag LUFTTEMPERATUR
2 01 01 -2
3 01 02 -2
4 01 03 -4.1
5 01 04 -3.6
6 01 05 -4.8
7 01 06 -4.7
8 01 07 -3.2
9 01 08 -2.3

so sehen die Daten in etwa aus, nur das sie eben über 365 Tage gehen, bei Monat kommt demenetprechen iwann 2,3 usw.
dort waren eigentlich noch mehr Spalten, aber habe jetzt mit data.frame mir nur die wichtigen Daten extrahiert,

m<- Daten[,2]
k<-Daten[,3]
M<-Daten[,4]
d<-data.frame(m,k,M)

wäre das so korrekt?
jetzt habe ich versucht, das Monatsmittel für jeden Monat zu bilden, daran bin ich aber gescheitert. Das würde ich mit einer for Schleife lösen wollen.
nach der Schleife habe ich den Befehel eingeben: Daten.Januar<-subset(d,d[,3]==1) , das funktioniert aber leider nicht:(
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Monatsmittel

Beitrag von jogo »

Hallo Saskia,

kannst Du bitte den Output von

Code: Alles auswählen

str(Daten)
liefern?

Gruß, Jörg
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Monatsmittel

Beitrag von bigben »

Ich glaube, Jörg meint

Code: Alles auswählen

str(d)
Die führenden Nullen bei den Tages- und Monatsbezeichnungen sind verdächtig. Könnte gut sein, dass da Texte statt Zahlen stehen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Monatsmittel

Beitrag von bigben »

Nein! Nachdem Du

Code: Alles auswählen

d<-data.frame(m,k,M)
gemacht hast, muss es bei Dir einen Dataframe mit dem Namen d geben. Du sollst nun

Code: Alles auswählen

str(d)
eintippen, auf Return drücken und die Antwort von R auf dieses Kommando hierher kopieren, möglichst in code-Tags.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
saskiasal47

Re: Monatsmittel

Beitrag von saskiasal47 »

das kommt bei mir raus, wenn ich str(d) in in die Konsole tippe:

Code: Alles auswählen

data.frame':   366 obs. of  3 variables:
 $ m: Factor w/ 13 levels "01","02","03",..: 13 1 1 1 1 1 1 1 1 1 ...
 $ k: Factor w/ 32 levels "01","02","03",..: 32 1 2 3 4 5 6 7 8 9 ...
 $ M: Factor w/ 190 levels "-0.1","-0.2",..: 190 15 15 33 28 39 38 24 17 7 ...
sorry, wenn ich mich so doof anstelle
:roll:
saskiasal47

Re: Monatsmittel

Beitrag von saskiasal47 »

das kommt raus ohne data.frame

Code: Alles auswählen

> str(Daten)
'data.frame':   366 obs. of  8 variables:
 $ V1: Factor w/ 2 levels "2015","Jahr": 2 1 1 1 1 1 1 1 1 1 ...
 $ V2: Factor w/ 13 levels "01","02","03",..: 13 1 1 1 1 1 1 1 1 1 ...
 $ V3: Factor w/ 32 levels "01","02","03",..: 32 1 2 3 4 5 6 7 8 9 ...
 $ V4: Factor w/ 190 levels "-0.1","-0.2",..: 190 15 15 33 28 39 38 24 17 7 ...
 $ V5: Factor w/ 193 levels "-0.1","-0.2",..: 193 4 5 25 23 24 13 10 40 114 ...
 $ V6: Factor w/ 179 levels "-0.2","-0.3",..: 179 26 31 39 34 52 46 42 45 21 ...
 $ V7: Factor w/ 124 levels "0","0.1","0.2",..: 124 2 76 99 32 8 13 83 62 68 ...
 $ V8: Factor w/ 219 levels "0","0.017","0.033",..: 219 171 1 1 1 14 99 2 1 1 ...
> head(Daten)
    V1    V2  V3             V4                     V5                     V6
1 Jahr Monat Tag LUFTTEMPERATUR LUFTTEMPERATUR_MAXIMUM LUFTTEMPERATUR_MINIMUM
2 2015    01  01             -2                   -0.4                   -3.2
3 2015    01  02             -2                   -0.5                   -3.7
4 2015    01  03           -4.1                   -3.6                   -4.8
5 2015    01  04           -3.6                   -3.2                     -4
6 2015    01  05           -4.8                   -3.3                   -6.4
                  V7                V8
1 NIEDERSCHLAGSHOEHE SONNENSCHEINDAUER
2                0.1             6.717
3                3.6                 0
4                6.1                 0
5               12.4                 0
6                0.7             0.317
>
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Monatsmittel

Beitrag von jogo »

saskiasal47 hat geschrieben: Mi Jun 21, 2017 1:43 pm das kommt raus ohne data.frame

> str(Daten)
'data.frame': 366 obs. of 8 variables:
$ V1: Factor w/ 2 levels "2015","Jahr": 2 1 1 1 1 1 1 1 1 1 ...
$ V2: Factor w/ 13 levels "01","02","03",..: 13 1 1 1 1 1 1 1 1 1 ...
$ V3: Factor w/ 32 levels "01","02","03",..: 32 1 2 3 4 5 6 7 8 9 ...
$ V4: Factor w/ 190 levels "-0.1","-0.2",..: 190 15 15 33 28 39 38 24 17 7 ...
$ V5: Factor w/ 193 levels "-0.1","-0.2",..: 193 4 5 25 23 24 13 10 40 114 ...
$ V6: Factor w/ 179 levels "-0.2","-0.3",..: 179 26 31 39 34 52 46 42 45 21 ...
$ V7: Factor w/ 124 levels "0","0.1","0.2",..: 124 2 76 99 32 8 13 83 62 68 ...
$ V8: Factor w/ 219 levels "0","0.017","0.033",..: 219 171 1 1 1 14 99 2 1 1 ...
das bedeutet, dass Du keinerlei numerische Werte in Deinem Dataframe hast.
Momentan kannst Du so keine Mittelwerte berechnen :!:
Die Spalte $V1 deutet darauf hin, dass Du eine Kopfzeile hast (also eine Zeile mit den Überschriften für die Spalten). Diese Zeile wurde aber mit bei den Daten eingelesen. Bitte zeige mal den Code, mit dem die Daten eingelesen wurden - so etwas wie:

Code: Alles auswählen

Daten <- read...(...)
dort sollte der Parameter header=TRUE gesetzt werden.
... dann bitte wieder str(Daten) liefern.

Gruß, Jörg
Antworten