Ich kann den Fehler in meinem Code und/oder den Fehler in meiner Logik nicht finden. Ich habe eine Matrix, X
, von 0 und 1 und einen Vektor y
von kontinuierlichen Werten und ich möchte einen 2-Probe t-Test in R
, wo die Zeilen von X
die verschiedenen Gruppen von y
zeigen.Fehler bei der Anwendung und t-Test
Zum Beispiel:
x = matrix(rbinom(60,1,.5),ncol=10)
y = abs(rnorm(ncol(x)))
apply(x,1,function(x,y=y)t.test(y[x==1],y[x==0]))
Also mit diesem Code ich erwartet hätte 6 t-Tests zu erhalten, wobei jede Reihe von X
zu den beiden Gruppen von y
entspricht. Ich erhalte jedoch diesen Fehler, wenn ich meinen Code ausführen:
Error in t.test(y[x == 1], y[x == 0]) :
promise already under evaluation: recursive default argument reference or earlier problems?
Kann jemand den Fehler erklärt und meinen Code ändern zu bekommen, was ich will.
warum das zweite Argument nicht entfernen? –
'apply (x, 1, Funktion (x) t.test (y [x == 1], y [x == 0]))' –
Ich denke, es ist klarer, was auf diesem Weg passiert. Das Referenzieren von Variablen innerhalb einer Funktion, die nicht in ihrem Gültigkeitsbereich sind, ist kein guter Stil imho. –