Seite 1 von 1

Mittelwert innerhalb von einer Spalte ermitteln

Verfasst: Fr Feb 01, 2019 11:29 pm
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

Re: Mittelwert innerhalb von einer Spalte ermitteln

Verfasst: Fr Feb 01, 2019 11:38 pm
von BerT
Bild

Re: Mittelwert innerhalb von einer Spalte ermitteln

Verfasst: Sa Feb 02, 2019 10:41 am
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

Re: Mittelwert innerhalb von einer Spalte ermitteln

Verfasst: Sa Feb 02, 2019 7:40 pm
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

Re: Mittelwert innerhalb von einer Spalte ermitteln

Verfasst: Sa Feb 02, 2019 7:42 pm
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!

Re: Mittelwert innerhalb von einer Spalte ermitteln

Verfasst: So Feb 03, 2019 9:51 am
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

Re: Mittelwert innerhalb von einer Spalte ermitteln

Verfasst: Mo Feb 04, 2019 9:21 pm
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

Re: Mittelwert innerhalb von einer Spalte ermitteln

Verfasst: Di Feb 05, 2019 7:32 pm
von BerT
Herzlichen Dank!!!

Ich hab das vorerst mal geschafft was ich wollte!

Danke!!

Mfg Bernhard

Re: Mittelwert innerhalb von einer Spalte ermitteln

Verfasst: Mi Feb 06, 2019 10:04 am
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