Code vereinfachen, R Anfänger

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Dafmen
Beiträge: 14
Registriert: Sa Nov 02, 2019 1:37 pm

Code vereinfachen, R Anfänger

Beitrag von Dafmen »

Hey,

ich bin verzweifelt auf der Suche nach Befehlen um R richtig auskosten zu können und meinen Datensatz zu bändigen.
Das grundsätzliche Ziel ist, die Werte statistisch miteinander zu verrechnen, nur würde die unten genannte Rechnung vorausgehen.
Die Grundfunktion, die ich versuche zu berechnen ist:

Zellenwert - Blockmittelwert + Variantenmittelwert

(Datenausschnitt im Anhang)

Momentan nutze ich R eher wie Excel indem ich
1. den Mittelwert des ersten Blockes (B_1==1) ausrechne

Code: Alles auswählen

Block1_1 <- mean(dataset$LAI2[dataset$B_1==1])
2. den Mittelwert der Variante (Pauletta 30) ausrechne

Code: Alles auswählen

Pauletta30 <- mean(dataset$LAI2[dataset$F_1=="Pauletta 30"])
3. den jeweiligen Parzellenwert anspreche

Code: Alles auswählen

P30Zelle_11 <- dataset$LAI2[dataset$F_1=="Pauletta 30" & dataset$B_1==1]
4. nach oben genannter und kursiver Formel den neuen Wert berechne

Code: Alles auswählen

P30Zelle_11-Block1_1+Pauletta30
___________________________________________________________________________

Wie ihr an meinem Beispieldatensatz seht, sind es unter anderem ziemlich viele Werte, die ich nach diesem Muster ausrechnen müsste, aber dafür ist R nunmal nicht gemacht.
Meine Frage ist nun, ob ihr mir eine Formel nennen könnt mit der ich die ganze Rechnung verdichten könnte?

Prinzipiell denke ich mir, dass es möglich sein muss, die Rechnung "durchlaufen zu lassen", also so in der Art:

Code: Alles auswählen

dataset$LAI2[dataset$B_1==1]-Block1_1+mean(dataset$LAI2[dataset$F_1])
wobei die Faktoren (F_1; Pauletta 30, Pauletta 45 usw.) jeweils durchlaufen müssten.

Ich hoffe, dass ich mein Anliegen plausibel vortragen konnte.
Um Hilfe wäre ich sehr dankbar :).
Dateianhänge
Beispiel.PNG
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Code vereinfachen, R Anfänger

Beitrag von jogo »

Hallo Dafmen,

willkommen im Forum!
Du hast die großen Stärken von R noch nicht gefunden, z.B. für den Blockmittelwert:

Code: Alles auswählen

dataset$Blockmean <- ave(dataset$LAI2, dataset$B_1, FUN=mean)
oder den Variantenmittelwert:

Code: Alles auswählen

dataset$Varimean <- ave(dataset$LAI2, dataset$F_1, FUN=mean)
Wie viele Zellwerte kann es denn geben? also das Ergebnis von:

Code: Alles auswählen

length(dataset$LAI2[dataset$F_1=="Pauletta 30"])
für beliebige Kombinationen von Block und Variante.
Wenn das immer jeweils nur eine Beobachtung trifft, kannst Du jetzt rechnen:

Code: Alles auswählen

dataset$Ergebnis <- dataset$LAI2 - dataset$Blockmean + dataset$Varimean
Gruß, Jörg
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Code vereinfachen, R Anfänger

Beitrag von bigben »

Hallo Dafmen,

herzlichen Glückwunsch zum Sprung von Excel zu R -- Du bist gerade an der Stelle, wo die Vorteile von R sich deutlich abzeichnen werden. Jörg hat den Weg dahin ja beschrieben. Damit weitere Posts von Dir ebenso schnelle und gute Antworten bringen möchte ich Dich darauf hinweisen, dass Screenshots fast die schlechteste Variante sind, uns ein Bild von Deinem Datensatz zu machen. Eduard hat hier mal bessere Möglichkeiten beschrieben: viewtopic.php?f=20&t=11

Es wird sich lohnen, bei zukünftigen Anfragen computerlesbare Datenbeispiele anzuhängen!

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Dafmen
Beiträge: 14
Registriert: Sa Nov 02, 2019 1:37 pm

Re: Code vereinfachen, R Anfänger

Beitrag von Dafmen »

Hallo ihr beiden,

vielen Dank für eure schnellen Antworten, ihr habt mir wirklich sehr geholfen!

Viele Grüße,
Sebastian
Antworten