私は、45個の質問を含むアンケートから複数の選択肢の回答があり、データセットの最初の観測として正しい回答を配置しました。現在の観測値と最初の観測値の比較
私のデータステップでは、各観測の変数が最初の観測で同じ変数と一致するかどうかによって、値を0または1に設定したいと思います。応答文字(AD)を0または1に置き換えますデータセット、その比較を行うにはどうしたらいいですか?
私はグループ化を行っていないので、First.xを使って最初の行にアクセスすることができますが、各変数(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 |
現在のコード:事前に
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;
ありがとう!
私はそれはそれはDOだ、FORループではありません、それでだけでいくつかの問題、あなたの応答のシンプルさが好きARRAYを文字配列としてマークし、最後にこれらの問題を修正すると、ARRAYが各ループに再割り当てされ、1行しかないので、最初の行だけが修正されます。 – Ecksters
私が言ったように、私はこのコードをテストすることができません。なぜなら私は自宅でライセンスを持っていないからです。私はあなたがコンセプトを使うことができて、それを機能させることを願っています。 –
まあ、私はマージからanswers_correctを削除し、SETのanswers_correctを使用して各観測にトップに表示され、現在は動作していますので、私はあなたの回答を私の回答にしますが、もしあればいいと思う更新しました。 – Ecksters