2017-06-28 8 views
2

を変更:だからSAS:行を複製し、私は、これらのデータは、このような何かを見てきたいくつかの変数に

data test;      
    input ID $ Week Age Weight City $ Sex $; 
    datalines;   
John 2 64 145 OK M 
Gary 3 46 176 OM M 

;       


run; 

を、ここで私は行に持っている、と私は次の操作を実行したい: -duplicate各行として3つの変数を変更するすべての組み合わせを得るのに多くの時間を必要としました,重量およびは-1,0および+1です。 例えば、最初の行が掛けられる3 * 3 * 3回:

John 1 63 144 OK M 
John 1 63 145 OK M 
John 1 63 146 OK M 
John 1 64 144 OK M 
John 1 64 145 OK M 
John 1 64 146 OK M 
    ... etc 

は、私は、ループのようなものと思っています:

data test2; 
set test; 
do i = -1 to 1; 
    do j = -1 to 1; 

     do k = -1 to 1; 


     end; 

    end; 

output; 
end; 
run; 

を、私はこれを適切に設定する方法を見ることができません。

+0

データをデータステップとして送信していただきありがとうございます。 – Reeza

答えて

2

ほとんどの場合、変数の増分を追加する必要があります。

data test; 
    input ID $ Week Age Weight City $ Sex $; 
    datalines; 
John 2 64 145 OK M 
Gary 3 46 176 OM M 

; 
run; 

data want; 
    set test; 

    do j=-1 to 1; 
     weight = weight + j; 

     do k=-1 to 1; 
      age = age + k; 

      do l = -1 to 1; 
       week = week + l; 
       output; 
      end; 


     end; 
    end; 

    drop j k l; 
run; 
+0

ありがとう!だから、SASは既存の週、年齢、体重の変数を上書きします。 – Erosennin

+1

はい、私はこれを二重にチェックし、OUTPUTステートメントを最も内側のループに移動する必要があることを認識しました。 – Reeza

関連する問題