ケースはデータセット内の1000回の観測ごとにカウントする方法SAS
いくつかの変数によってランク付けされたデータセットがあります。
私は最初から1000回の観測を行い、field1 = 1でカウントし、次に1000回の観測を同じ方法でカウントする必要があります どうすればいいですか?ありがとうございました!
ケースはデータセット内の1000回の観測ごとにカウントする方法SAS
いくつかの変数によってランク付けされたデータセットがあります。
私は最初から1000回の観測を行い、field1 = 1でカウントし、次に1000回の観測を同じ方法でカウントする必要があります どうすればいいですか?ありがとうございました!
私はあなたが望むものを正しく理解することを願っています。
あなたがこのような結果をもたらすことになる。この
data result (Keep=countob obnr);
retain obnr 1000;
retain countob 0;
set mydata;
if field1=1 then
countob=countob+1;
if mod(_n_,1000) = 0 then do;
output;
obnr=obnr+1000;
countob=0;
end;
run;
ようdatastepを試みることができる:
obnr | countob
------------
1000 | 247
2000 | 325
3000 | 198
obnrは、...明らかにわずかに短い
もう一つのオプションです、 CEIL
-functionおよびPROC FREQ
-手順を利用する:
data want;
set have;
thousand=ceil(_N_/1000)*1000;
run;
proc freq data=want;
tables thousand/out=want;
where field1=1;
run;
ありがとう!それは実際に動作します – bobby1232
@tomありがとう!できます! – bobby1232
私の結果でobnrを持っていることの1つは、すべての行で1000だけを設定します。 – bobby1232
あなたは簡単にobnr = _n_; obnr = obnr + 1000の代わりに。同じ結果につながるはずです。そうでなければ、私はあなたが私のコードをコピーした場合、なぜ1000にとどまるのかわかりません... – kl78