Ich habe eine Reihe von Multiple-Choice-Antworten aus einer Umfrage mit 45 Fragen, und ich habe die richtige Antworten als meine erste Beobachtung in den Datensatz platziert. In meinem DATA-Schritt möchte ich Werte auf 0 oder 1 setzen, je nachdem, ob die Variable in jeder Beobachtung mit der gleichen Variablen in der ersten Beobachtung übereinstimmt, ich möchte den Antwortbuchstaben (AD) durch die 0 oder 1 in ersetzen Wie gehe ich bei diesem Vergleich vor?Vergleichen Sie den Wert der aktuellen Beobachtung mit der ersten Beobachtung
Ich mache keine Gruppierung, also glaube ich, dass ich mit First.x auf die erste Zeile zugreifen kann, aber ich bin nicht sicher, wie man das über jede Variable vergleicht (answer1-answer45).
| Id | answer1 | answer2 | ...through answer 45
|:-------------|---------:|
| KEY | A | B |
| 2 | A | C |
| 3 | C | D |
| 4 | A | B |
| 5 | D | C |
| 6 | B | B |
Should become:
| Id | answer1 | answer2 | ...through answer 45
|:-------------|---------:|
| KEY | A | B |
| 2 | 1 | 0 |
| 3 | 0 | 0 |
| 4 | 1 | 1 |
| 5 | 0 | 0 |
| 6 | 0 | 1 |
Aktuelle Code für die Daten zu lesen:
DATA TEST(drop=name fill answer0);
INFILE SCORES DSD firstobs=2;
length id $4;
length answer1-answer150 $1;
INPUT name $ fill id $ (answer0-answer150) ($);
RUN;
Vielen Dank im Voraus!
ich die Einfachheit Ihrer Antwort wünschen, nur ein paar Probleme mit ihm, es ist nicht eine FOR-Schleife, ist es ein DO Schleife, müssen Sie Ihre ARRAYs als Zeichen-Arrays markieren, und schließlich, wenn Sie diese Probleme beheben, wird nur die erste Zeile korrigiert, da das ARRAY jede Schleife neu zugewiesen wird und es nur 1 Zeile hat. – Ecksters
Nun, wie gesagt, ich kann den Code nicht testen, da ich meine Lizenz hier zu Hause nicht habe :). Ich hoffe, dass Sie das Konzept nutzen können und es zum Laufen bringen. –
Nun, ich habe answers_correct aus der Zusammenführung entfernt und SETs answer_correct verwendet, um es bei jeder Beobachtung erscheinen zu lassen, und jetzt funktioniert es, also werde ich deine als meine Antwort markieren, aber ich denke, es wäre nett, wenn es sein könnte aktualisiert. – Ecksters