1つの変数の特定の値を検出し、それらの条件が満たされている場合は新しい変数を作成しようとしています。SASの同じ変数に対する複数の条件
はここに(私は多くのより多くの行を持っている)私のデータの一部です:
id time result
1 1 normal
1 2 normal
1 3 abnormal
2 1 normal
2 2
3 3 normal
4 1 normal
4 2 normal
4 3 abnormal
5 1 normal
5 2 normal
5 3
私は
id time result base
1 1 normal
1 2 normal x
1 3 abnormal
2 1 normal x
2 2
2 3 normal
3 3 normal
4 1 normal
4 2 normal x
4 3 abnormal
5 1 normal
5 2 normal x
5 3
たいどのような結果が時点で存在しているとき私のベースライン値(ベース)が(移入する必要があります時間)2.結果がない場合、ベースラインは時間= 1であるべきである。
if result="" and time=2 then do;
if time=10 and result ne "" then base=X; end;
if result ne "" and time=2 then base=X; `
time = 2で結果が正しくなると正しく動作します。しかし、結果が欠落している場合は、何か間違っています。
あなたのサンプルコードを使用してサンプルデータが一貫してください。あなたのコードでは、サンプルデータに表示されていない変数 'visit'、' visitnum'、 'day'を参照します。あなたのフラグ変数はあなたのデータでは 'base'と呼ばれますが、あなたのコードでは' base_'です。それとは別に、あなたのサンプルの結果と、あなたが達成しようとしているものの小さな説明(間違っていると思われる)からは分かりません。あなたの 'if-then-if'構文はかなり変わっています。 – user2877959
うわー。そのコードはこのように急いでコピーされていますが、あまりにも多くの間違いがあったことを認識していませんでした。今私は私の質問を修正し、修正しました。 – Laura