/********************************************************************
* *
* TEC98_06.SAS Ver.1.0 by K.T. 1998/11/14(土)16:06:40 *
* *
* 目的:上位数十%のみを取り出す *
* *
* ある集団の任意の変数のとる値の上位(下位)から数十%のデータ *
* のサブセットを作成する *
* *
********************************************************************/
* 変数aについて上位50%の値をもつオブザベ−ションのみ取り出す ;
DATA d1 ;
INPUT a b;
k=_N_;
cards;
20 30
10 12
30 33
40 53
45 23
55 43
;
RUN;
PROC SORT DATA=d1; BY DESCENDING a; * ここで上位下位を決定 ;
RUN;
PROC MEANS NOPRINT; VAR a; OUTPUT OUT=d2 N=num; RUN;
DATA d3;
IF _N_=1 THEN SET d2;
SET d1;
k=0.5 ; * ここで割合(50%)を決定 ;
n= int(k*num);
IF _N_<= n ; * 同値を含んでいる ;
KEEP a b ; * 不要な変数のカット ;
RUN;
PROC PRINT;
RUN;
戻る
進む
ホームページへ
mailto: toyomura@hokusei.ac.jp
home page: http://www.ipc.hokusei.ac.jp/~z00105/index.html