Mittelwert innerhalb von einer Spalte ermitteln

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

Moderatoren: EDi, jogo

Antworten
BerT
Beiträge: 5
Registriert: Fr Feb 01, 2019 11:17 pm

Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von BerT »

Liebe Kollegen,

ich brauche dringend eure Hilfe! Wie kann ich den Mittelwert innerhalb einer Spalte von jenen Werten ermitteln, welche die gleichen Werte in einer anderen Spalte aufweisen.

Um zu verdeutlichen was ich meine, anbei ein Bild. Ich brauche z.B. den Mittelwert von allen ir, bei welchen Bestand und BaumNR gleich sind (z.B. Bestand 1, BaumNr14).

Bild[/img]

Vielen Dank!

Mfg Bernhard
BerT
Beiträge: 5
Registriert: Fr Feb 01, 2019 11:17 pm

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von BerT »

Bild
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von jogo »

Hallo Bernhard,
BerT hat geschrieben: Fr Feb 01, 2019 11:29 pm ich brauche dringend eure Hilfe! Wie kann ich den Mittelwert innerhalb einer Spalte von jenen Werten ermitteln, welche die gleichen Werte in einer anderen Spalte aufweisen.

Um zu verdeutlichen was ich meine, anbei ein Bild. Ich brauche z.B. den Mittelwert von allen ir, bei welchen Bestand und BaumNR gleich sind (z.B. Bestand 1, BaumNr14).
aber in diesem Fall sind die Werte von Bestand und BaumNR nicht gleich, oder habe ich etwas verkehrt verstanden :?:
Außerdem scheint mir (mit Blick auf das Bild), dass Bestand und BaumNR verschiedene Typen haben. Kannst Du deshalb bitte noch das Ergebnis von

Code: Alles auswählen

str(Jr)
in Deine nächste Nachricht kopieren?

Schau Dir bitte Folgendes an und schreibe, ob es wunschgemäß ist:

Code: Alles auswählen

set.seed(42)
Jr <- data.frame(ir=1:10, Bestand=rep(1:3, c(4,3,3)), BaumNR=sample(1:3, 10, repl=TRUE))
Jr
with(Jr, ir[Bestand==BaumNR])
with(Jr, mean(ir[Bestand==BaumNR]))
Gruß, Jörg
BerT
Beiträge: 5
Registriert: Fr Feb 01, 2019 11:17 pm

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von BerT »

Hallo Jogo,

vielen Dank für die Hilfe!

Also bei Struktur kommt folgendes:

Bild


Ich hab deinen Code probiert, funktioniert aber leider nicht.
Ich muss aber ehrlich gestehen ich weiß auch nicht ganz wie das funktionieren soll. Vielleicht kannst du die einzelnen Schritte davon ein wenig erklären, dann kann ich es vl selbst auch probieren auszubessern.

Damit du siehst was kommt wenn ich deinen Code verwende:

Bild

Vielen lieben Dank!

Mfg Bernhard
BerT
Beiträge: 5
Registriert: Fr Feb 01, 2019 11:17 pm

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von BerT »

Nur um es nochmal zu beschreiben was ich genau will: Ich will das mit dieser Funktion dann für alle BaumNr. der gleichen Bestände einen Mittelwert. Nicht nur vom Baum Nr. 14, aber ich denke das ist eh klar oder?

Vielen Dank!
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von jogo »

Nur, dass ich es auch ganz sicher verstanden habe:
Du möchtest für jeden Bestand (überall Bäume eines Bestandes) einen Mittelwert ausrechnen, richtig :?:


BerT hat geschrieben: Sa Feb 02, 2019 7:42 pm Nur um es nochmal zu beschreiben was ich genau will: Ich will das mit dieser Funktion dann für alle BaumNr. der gleichen Bestände einen Mittelwert. ...

Code: Alles auswählen

tapply(Jr$ir, Jr$Bestand, FUN=mean)
Das ist nur eine Möglichkeit (mir fallen leicht noch weitere ein).
lesenswerte Lektüre: https://stackoverflow.com/questions/350 ... ply-family

Bitte verwende für Deinen Code nicht Bilder, sondern verwende die entsprechenden Formatierungen beim Schreiben der Nachricht!
(Schau mal in den Bereich FAQ!)

Gruß, Jörg
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von jogo »

Wenn Du z.B. nach zwei verschiedenen Spalten gruppiert Mittelwerte von $ir ausrechnen möchtest:

Code: Alles auswählen

aggregate(ir ~ Bestand + BaumNr, data=Jr, FUN=mean)
oder

Code: Alles auswählen

tapply(Jr$ir, list(Jr$Bestand, Jr$BaumNr), FUN=mean)
Mit data.table sieht es so aus:

Code: Alles auswählen

library("data.table")
setDT(Jr)
Jr[, .(ir=mean(ir)), .(Bestand, BaumNr)]
Gruß, Jörg
BerT
Beiträge: 5
Registriert: Fr Feb 01, 2019 11:17 pm

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von BerT »

Herzlichen Dank!!!

Ich hab das vorerst mal geschafft was ich wollte!

Danke!!

Mfg Bernhard
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von jogo »

Hallo Bernhard,

kannst Du bitte zeigen, wie Deine Lösung jetzt aussieht? So können wir sehen, was Du wirklich wolltest.
Ein großes Problem - zumindest für mich - war, dass ich aus Deiner Beschreibung der Anforderung nicht schlau wurde.

Gruß, Jörg
Antworten