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

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

Bild

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

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von jogo » Sa Feb 02, 2019 10:41 am

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

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 » 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. Nicht nur vom Baum Nr. 14, aber ich denke das ist eh klar oder?

Vielen Dank!

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

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von jogo » So Feb 03, 2019 9:51 am

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: 1254
Registriert: Fr Okt 07, 2016 8:25 am

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von jogo » Mo Feb 04, 2019 9:21 pm

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 » Di Feb 05, 2019 7:32 pm

Herzlichen Dank!!!

Ich hab das vorerst mal geschafft was ich wollte!

Danke!!

Mfg Bernhard

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

Re: Mittelwert innerhalb von einer Spalte ermitteln

Beitrag von jogo » Mi Feb 06, 2019 10:04 am

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast