Mittelwerte bilden

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

Moderatoren: EDi, jogo

Antworten
jessi
Beiträge: 100
Registriert: Mo Jul 10, 2017 9:23 am

Mittelwerte bilden

Beitrag von jessi »

Guten Tag zusammen,

ich habe Daten die wie folgt aufgebaut sind:

Code: Alles auswählen

str(date)
'data.frame': 15892331obs. of 5 variables:
$tag: chr "20130102" "20130102" ...
$phi: num 31 31 31 31 ...
$lam: num 16 17 18 19 ...
$temp: num -3.5 5 -0.2 1.7 ... 
phi läuft von 31 bis 60, ist jetzt allerdings kein Integer. Die zehner-Stelle bleibt immer gleich, bei den kommazahlen ändert sich phi laufen, also 31.06, 31.12 oder 31.08 ...
Jetzt möchte ich allerdings gerne die Temperatur-Werte mitteln und zwar über phi und lam, also dass ich alle T-Werte die bei lam = 16 und phi = 31 gemittelt werden. Dazu hätte ich bereits folgendes probiert:

Code: Alles auswählen

mi_T <- aggregate(temp ~ phi+lam,date, FUN = mean)
Das funktioniert jetzt nicht, da phi nicht immer den gleichen komma-wert hat. Gibt es eine Möglichkeit, den Code so zu verändern, dass für die Mittelwertsberechnung nur die Zahl vor dem Komma (also 31, 32, 33 ...) berücksichtigt wird? die Werte für lam ändern sich nicht in der Nachkommazahl, sondern bleiben konstant.

Meine Daten lese ich folgenderweise ein (falls man ev. da schon anders einlesen kann)

Code: Alles auswählen

date <- dbGetQuery(conn, 'SELECT tag, phi, lam, temp FROM table WHERE tag In ("20130102", "20130103","20130104") AND typeof(temp) = "real" AND phi >= 31 AND phi <= 60 AND lam >= 16 AND lam <=30')
vielen dank.
Jess
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Mittelwerte bilden

Beitrag von jogo »

Code: Alles auswählen

mi_T <- aggregate(temp ~ as.integer(phi) + as.integer(lam), data=date, FUN = mean)
Ist die Laufzeit noch erträglich?

Gruß, Jörg
jessi
Beiträge: 100
Registriert: Mo Jul 10, 2017 9:23 am

Re: Mittelwerte bilden

Beitrag von jessi »

Hallo Jörg,

vielen Dank für deine Antwort.
Wenn ich mir die Daten jetzt ausgeben lasse

Code: Alles auswählen

str(mi_T)
'data.frame:' ...
$as.integer(phi):  int 31 31 31 31 ...
$as.integer(lam):  int 16 17 18 19 ...
$temp: num -3.5 5 -0.2 1.7 ... 
Kann ich jetzt auf die einzelnen Spalten noch zugreifen?
Die Kommandozeile, die ich normalerweise benutze

Code: Alles auswählen

mi_T$azimuth 
funktioniert nicht.

Ist die Laufzeit noch erträglich?

Ja, das Einlesen dauert etwas, die Mittelwertsberechung ging dann aber recht schnell.

Danke nochmals.
Jessi
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Mittelwerte bilden

Beitrag von jogo »

Hallo Jessi,

um den Zugriff auf die Spalten von mi_T zu vereinfachen, kannst Du folgendes machen:

Code: Alles auswählen

names(mi_T) <- c("phi", "lam", "temp")
mi_T$phi    ### oder mi_T$lam
Hinter welche Bezeichnung versteckt sich der Azimuth, phi oder lam ?

Gruß, Jörg
jessi
Beiträge: 100
Registriert: Mo Jul 10, 2017 9:23 am

Re: Mittelwerte bilden

Beitrag von jessi »

Hallo Jörg,

vielen Dank nochmals.
Azimuth ist eigentlich phi, hab mit den Namen etwas herum gespielt.

glg. Jessi
Antworten