1

シーケンス列が破損したSASにAccessデータベースからテーブルをインポートしています。SASで新しいシーケンス列を作成する必要があります。ソーステーブルは定期的に補充されるため、Accessでシーケンス番号を再作成したくありません。SASに追加できる自動番号列のようなものはありますか?

4

3 に答える 3

5

次のようなことができます。

data want;
set have;
autonumber+1;
run;

また_N_、通常のデータ ステップでは行番号に等しい、データ ステップ ループの反復回数です。データセットには書き込まれませんが、通常の変数として常にアクセスできます。

于 2012-08-31T13:36:34.737 に答える
4

SAS でデータセットを読み込む場合、オブザベーション_n_番号を参照します。これはあなたのために働くはずです:

data new;
 set old;
 seqno = _n_;
run;
于 2012-08-31T13:35:35.127 に答える
3

観測値と同一でない典型的な例_N_- クラス変数の各値のすべての行に変数の合計を追加するために使用される DoW ループ。_N_最後に、行番号ではなく反復回数を返すことに注意してください。この場合、データ ステップ ループxは、行ごとに 1 回ではなく、の値ごとに 1 回反復します。ループ。

data have;
do x = 1 to 5;
  do y = 1 to 3; 
    z=floor(7*ranuni(7));
    rownum+1;
    output;
  end;
end;
run;

data test;
 do t=1 by 1 until (last.x);
    set have;
    by x;
    sum_z+z;
 end;
 do t=1 by 1 until (last.x);
    set have;
    by x;
    output;
    put x= z= sum_z= _N_= rownum=;
 end;
 sum_z=0;
run;

ログ:

x=1 z=2 sum_z=12 _N_=1 rownum=1
x=1 z=5 sum_z=12 _N_=1 rownum=2
x=1 z=5 sum_z=12 _N_=1 rownum=3
x=2 z=5 sum_z=13 _N_=2 rownum=4
x=2 z=3 sum_z=13 _N_=2 rownum=5
x=2 z=5 sum_z=13 _N_=2 rownum=6
x=3 z=5 sum_z=12 _N_=3 rownum=7
x=3 z=5 sum_z=12 _N_=3 rownum=8
x=3 z=2 sum_z=12 _N_=3 rownum=9
x=4 z=3 sum_z=12 _N_=4 rownum=10
x=4 z=5 sum_z=12 _N_=4 rownum=11
x=4 z=4 sum_z=12 _N_=4 rownum=12
x=5 z=6 sum_z=13 _N_=5 rownum=13
x=5 z=3 sum_z=13 _N_=5 rownum=14
x=5 z=4 sum_z=13 _N_=5 rownum=15
于 2012-08-31T14:42:30.440 に答える