hier habe ich noch zwei Anregungen:wbart hat geschrieben: ↑So Mai 06, 2018 11:50 am Ja ich war auch ein bisschen irritiert, das man für so ähnliche Aufgaben (Berechne x, y, z zeilenweise), so unterschiedliche Strategien benutzen muss. Einfacher fände ich es schon wenn immer die selbe Strategie angewendet würde. Da klingt jetzt data.table auch sehr interessant wenn auch noch sehr kryptisch. Die apply Varianten habe ich noch nicht wirklich verstanden. Aber ihr habt mir hier schon mal den Umgang mit Listen und apply ans Herz gelegt. Ich arbeite drann . Vielen Dank für eure Anregungen.
Code: Alles auswählen
werte <- read.table(header= TRUE, dec=",", text =
"Name Wert_1 Wert_2 Wert_3
a 432,50 105,00 289,00
a 571,00 170,50 239,00
a 352,00 106,00 133,00
b 378,50 119,00 207,00
b NA 90,00 228,00
b 338,50 71,00 228,00
a 446,00 94,00 189,00
a 482,00 90,00 129,00
a 287,50 110,00 117,00
c 593,00 153,00 240,00
c 409,50 114,00 126,00
c NA 94,00 245,00
a 260,50 76,50 179,00
a 490,00 79,00 202,00
a 527,00 65,50 274,00
d 614,00 79,00 105,00
d 549,00 106,50 235,00
d 563,00 102,00 250,00
a 485,00 NA 265,00
a 512,00 112,00 142,00
a 407,50 92,00 203,00
e 631,50 126,00 218,00
e 791,00 130,50 208,00
e 432,50 88,00 237,00")
werte$mw.reihen <- rowMeans(werte[,2:4], na.rm = TRUE)
werte$sd.reihen <- apply(werte[,2:4], 1, sd, na.rm=TRUE)
werte$var.koeff <- with(werte, sd.reihen/mw.reihen*100)
############### 1. Anregung:
E <- aggregate(mw.reihen ~ Name, data=werte, FUN=function(x) c(M=mean(x), S=sd(x)))
E$VK <- E$mw.reihen[, "S"]/E$mw.reihen[, "M"]
E
############### 2. Anregung:
E <- data.frame(
M=tapply(werte$mw.reihen, werte$Name, FUN=mean),
S=tapply(werte$mw.reihen, werte$Name, FUN=sd))
E$VK <- E$S/E$M
E