Monatsmittel
Monatsmittel
Hallo ihr Lieben,
ich komme an einer Stelle einer Aufgabe nicht weiter und wäre super dankbar, wenn mir jemand helfen würde
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
ich komme an einer Stelle einer Aufgabe nicht weiter und wäre super dankbar, wenn mir jemand helfen würde
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
Re: Monatsmittel
Hallo Saskia,
bitte zeig doch mal, wie die Daten aussehen:... den output dann in Deine nächste Nachricht kopieren.
Gruß, Jörg
bitte zeig doch mal, wie die Daten aussehen:
Code: Alles auswählen
str(DeinDataframe)
head(DeinDataframe)
Gruß, Jörg
Re: Monatsmittel
Hallo Saskia,saskiasal47 hat geschrieben: ↑Mo Jun 19, 2017 10:20 am Als Hinweis wurde mir gegeben, dass es hilfreich sei, ...
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
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Monatsmittel
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:(
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:(
Re: Monatsmittel
Ich glaube, Jörg meint
Die führenden Nullen bei den Tages- und Monatsbezeichnungen sind verdächtig. Könnte gut sein, dass da Texte statt Zahlen stehen.
LG,
Bernhard
Code: Alles auswählen
str(d)
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
Re: Monatsmittel
Nein! Nachdem Du gemacht hast, muss es bei Dir einen Dataframe mit dem Namen d geben. Du sollst nun eintippen, auf Return drücken und die Antwort von R auf dieses Kommando hierher kopieren, möglichst in code-Tags.
LG,
Bernhard
Code: Alles auswählen
d<-data.frame(m,k,M)
Code: Alles auswählen
str(d)
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
Re: Monatsmittel
das kommt bei mir raus, wenn ich str(d) in in die Konsole tippe:
sorry, wenn ich mich so doof anstelle
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 ...
Re: Monatsmittel
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
>
Re: Monatsmittel
das bedeutet, dass Du keinerlei numerische Werte in Deinem Dataframe hast.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 ...
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...(...)
... dann bitte wieder str(Daten) liefern.
Gruß, Jörg