Hallo Maya,
darf ich fragen, warum Du so eine komische Umkodierung vornehmen möchtest? Ich nehmen an, dass Du test.preparation.course gerne dummycodieren möchtest, um das in einer linearen Regression zu verwenden. Das wäre in anderen Computerprogrammen vielleicht ein sinnvoller Ansatz, ist aber in R nicht erforderlich. Du kann test.preparation.course einfach so wie es ist (als "factor") in die Regression einbringen und R kümmert sich dann um die Dummycodierung selbst.
Du kannst beispielsweise den writing.score aus dem reading.score und dem test.preparation.course vorhersagen:
Code: Alles auswählen
students <- read.csv("http://forum.r-statistik.de/download/file.php?id=457")
summary(lm(writing.score ~ reading.score + test.preparation.course,
data= students))
Ergebnis:
Code: Alles auswählen
Call:
lm(formula = writing.score ~ reading.score + test.preparation.course,
data = students)
Residuals:
Min 1Q Median 3Q Max
-14.0906 -3.0140 0.0179 2.8745 13.0800
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.625416 0.752812 3.487 0.000509
reading.score 0.971577 0.009702 100.139 < 2e-16
test.preparation.coursenone -2.763915 0.295330 -9.359 < 2e-16
(Intercept) ***
reading.score ***
test.preparation.coursenone ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 4.344 on 997 degrees of freedom
Multiple R-squared: 0.9184, Adjusted R-squared: 0.9183
F-statistic: 5612 on 2 and 997 DF, p-value: < 2.2e-16
Du siehst: Wer keinen test.preparation.course gemacht hat, der hat 2,76 Punkte weniger im writing.score und das schon adjustiert nach reading.score.
Das kann man auch grafisch Darstellen, ohne irgendwas manuell umzucodieren:
Code: Alles auswählen
plot(students$reading.score, students$writing.score, col=students$test.preparation.course)
Sehr wahrscheinlich brauchst Du diese Umwandlung also nicht und sie bringt Dir eine zusätzliche Gelegenheit, Fehler zu machen.
LG,
Bernhard
PS: Wenn Du es trotzdem machen willst:
Code: Alles auswählen
students$vorbereitung <- ifelse(students$test.preparation.course == "none",
yes = 0, no = 1)