Seite 2 von 3
Re: Wo liegt der Fehler?
Verfasst: Mi Jun 21, 2017 11:06 am
von jogo
Bei mir funktioniert es.
Code: Alles auswählen
> aggregate( as.matrix(d[c(15,22,29,36,43)]) ~ Geschlecht, data=d, FUN=sd, na.rm=TRUE)
Geschlecht preODI poODI po3ODI p6ODI po12ODI
1 F 14.71008 18.304661 13.918322 14.29770 15.337615
2 M 13.04267 7.361688 8.608781 7.07892 6.708204
Ich habe mal meine Glaskugel befragt:
sie meint ich soll Dich nach dem Output von
fragen, weil der Verdacht besteht, dass Du irgendwann ein eigenes Objekt
sd definiert hast.
So ähnlich wie bei
Code: Alles auswählen
mean <- "hallo"
aggregate( as.matrix(d[c(15,22,29,36,43)]) ~ Geschlecht, data=d, FUN=mean, na.rm=TRUE)
Wenn Du unbedingt ein Objekt mit dem Namen
sd verwenden möchtest, dann musst Du für die Verwendung der ursprünglichen Funktion sd() einen qualifizierten Bezeichner einsetzen:
Code: Alles auswählen
aggregate( as.matrix(d[c(15,22,29,36,43)]) ~ Geschlecht, data=d, FUN=base::sd)
Gruß, Jörg
Re: Wo liegt der Fehler?
Verfasst: Mi Jun 21, 2017 11:13 am
von RCarlos
In der Tat habe ich mal eine Variable sd angelegt
Code: Alles auswählen
> rm(sd)
> de<-aggregate( as.matrix(d[c(12,19,26,33,40)]) ~ Geschlecht, data=d, FUN=sd, na.rm=TRUE)
> de
Geschlecht preVASR poVASR po3VASR po6VASR po12VASR
1 F 2.059715 1.348400 1.898963 1.083625 1.564279
2 M 2.061553 1.364225 1.224745 1.333333 1.000000
Re: Wo liegt der Fehler?
Verfasst: Mi Jun 21, 2017 11:16 am
von RCarlos
aber insgesamt machen mich die Ergebnisse aber stutzig, da sie nicht mit vorherigen Berechnungen übereinstimmen:
Code: Alles auswählen
> de<-aggregate( as.matrix(d[c(12,19,26,33,40)]) ~ Geschlecht, data=d, FUN=mean, na.rm=TRUE)
> de
Geschlecht preVASR poVASR po3VASR po6VASR po12VASR
1 F 5.666667 3.000000 2.833333 3.083333 3.083333
2 M 3.666667 1.111111 2.000000 1.555556 1.666667
> df<-subset(d,d$Geschlecht=="F")
> dm<-subset(d,d$Geschlecht=="M")
> mean(df$preVASR)
[1] 5.473684
> mean(dm$preVASR)
[1] 4.671429
5.473684 sollt der gleiche Wert wie 5,666667 sein und 4,671429 wie 3,666667.....
Re: Wo liegt der Fehler?
Verfasst: Mi Jun 21, 2017 11:26 am
von jogo
bei aggregate() erfolgt der NA-Ausschluss komplett zeilenweise. IMHO kann man das aber mit einem Parameter steuern.
Du möchtest:
Code: Alles auswählen
aggregate( as.matrix(d[c(12,19,26,33,40)]) ~ Geschlecht, data=d, FUN=mean, na.action = na.pass, na.rm=TRUE)
# > aggregate( as.matrix(d[c(12,19,26,33,40)]) ~ Geschlecht, data=d, FUN=mean, na.action = na.pass, na.rm=TRUE)
# Geschlecht preVASR poVASR po3VASR po6VASR po12VASR
# 1 F 5.473684 2.767442 2.804878 3.264706 3.150000
# 2 M 4.671429 2.268293 2.911765 2.833333 2.266667
BTW:
Bei subset() reicht z.B.:
df <- subset(d, Geschlecht=="F")
Re: Wo liegt der Fehler?
Verfasst: Mi Jun 21, 2017 11:31 am
von RCarlos
super. so sind die Werte identisch.
Ich danke dir für deine Mühen!
Gruß
RCarlos
Re: Wo liegt der Fehler?
Verfasst: Mi Jun 21, 2017 11:50 am
von bigben
Jörg bekommt hiermit offiziell die Hellseher-Ehrenmedaille verliehen! Bravo!
Re: Wo liegt der Fehler?
Verfasst: Mi Jun 21, 2017 12:12 pm
von RCarlos
Hallo Jörg,
eine weitere Frage fällt mir dazu ein. Wie müsste ich vorgehen, wenn ich nicht nur nach Geschlecht unterteilen möchte, sondern nach z.B. Geschlecht und Alter <60 jahre?
Gruß
Re: Wo liegt der Fehler?
Verfasst: Mi Jun 21, 2017 2:02 pm
von jogo
Code: Alles auswählen
aggregate( cbind(preVASR, poVASR, po3VASR, po6VASR, po12VASR) ~ Geschlecht + (Alter<60), data=d, FUN=mean, na.action = na.pass, na.rm=TRUE)
Re: Wo liegt der Fehler?
Verfasst: Mi Jun 21, 2017 2:06 pm
von jogo
bigben hat geschrieben: Mi Jun 21, 2017 11:50 am
Jörg bekommt hiermit offiziell die Hellseher-Ehrenmedaille verliehen! Bravo!
das liegt alles nur an der handgefertigten, handpolierten und feinjustierten Glaskugel.
Re: Wo liegt der Fehler?
Verfasst: Mi Jun 21, 2017 2:11 pm
von bigben
Ehrlich? Glaskugel? Ich habe eher den Verdacht, dass Du
Algorithmen verwendest
