元のデータセットの最後の n 個の観測のみを使用して、別のデータセットから SAS データセットを作成するにはどうすればよいですか。n の値が分かっていれば簡単です。「n」がわからない場合、どうすればこれを行うことができますか?
16381 次
4 に答える
8
これは、必要な観測数を示すマクロ変数があることを前提としています。NOBS は、すべてを読み取らずに、現在のデータセット内の観測数を示します。
%let obswant=5;
data want;
set sashelp.class nobs=obscount;
if _n_ gt (obscount-&obswant.);
run;
于 2013-04-23T14:01:13.517 に答える
4
データセットが大きい場合、データセット全体を読み取りたくない場合があります。代わりに、最初にデータセット内のオブザベーションの総数を読み取る構成を試すことができます。したがって、最後の観測が必要な場合は、次のようにします。
data t;
input x;
datalines;
1
2
3
4
;
%let dsid=%sysfunc(open(t));
%let num=%sysfunc(attrn(&dsid,nlobs));
%let rc=%sysfunc(close(&dsid));
%let number = 2;
data tt;
set t (firstobs = %eval(&num.-&number.+1));
run;
于 2013-04-29T09:11:09.117 に答える
4
Joe のマクロ変数の例を使用して、必要な観測数を指定すると、別の答えが得られます。
%let obswant = 10;
data want;
do _i_=nobs-(&obswant-1) to nobs;
set have point=_i_ nobs=nobs;
output;
end;
stop; /* Needed to stop data step */
run;
これは、必要な特定の観測のみを読み取るため、パフォーマンスが向上するはずです。
于 2013-04-23T14:47:56.127 に答える