Ich möchte für jedes x, das den gleichen Wert hat also z.b. 1250 den Mittelwert aus allen dazugehörigen y-Werte berechnen. Danach will ich die Differenz zwischen den wahren Mittelwerten und den mittels lm-Modell errechneten theoretischen Werten berechnen.
Bevor ich jetzt weitersuche, erst einmal eine grundlegende Frage:
Sollte ich die Daten lieber als data.frame, tibble oder matrix nutzen. Was wäre praktischer? Am Ende sollen mit rmarkdown/LaTeX schöne Tabellen rauskommen.
So ungefähr soll das später aussehen. Erstes Problem:
Ich denke ich muss mit irgendeiner Form einer for/if Funktion kommen, aber ich raff es nicht.
Meine Idee war folgende:
Code: Alles auswählen
for (i in y) {
for (i in x) {
if (df_matrix$x == dfmatrix$x) {
mean(df_matrix$y)
}
}
}
Zweites Problem:
Die Differenzberechnung macht seltsame Dinge
Siehe mein Beispiel und die Ausgabe dazu.
Hier der gesamte Code:
Code: Alles auswählen
library(tidyverse)
x <- c(1250, 1250, 125, 125, 12.5, 12.5, 1.25, 1.25, 0.125, 0.125)
y <- c(29.5, 29.2, 32.85, 33.05, 36.35, 36.15, 39.4, 39.5, 42.65, 42.9)
sample1 <- data.frame(x, y)
q = log10(sample1$x)
#Tibble statt data.frame erstellt in der Hoffnung die Daten besser zu verarbeiten.
df <- tibble(x = x,
y = y,
Di = 39.81 + q * -3.335)
df
#Differenz zwischen x und Y berechnen
df %>%
mutate(Di_diff = c(NA, diff(y)))
#Mittelwert der Werte bei gleichem x-Wert evtl. mit colMeans und Matrix oder...?
df_matrix <- as.matrix(df)
df_matrix #[3, 1]
for (i in y) {
for (i in x) {
if (df_matrix$x == dfmatrix$x) {
mean(df_matrix$y)
}
}
}
Danke für eure Hilfe.
VG
Andreas