Sas 列中以百分比表示的值

Sas 列中以百分比表示的值,sas,percentile,Sas,Percentile,在Access中,我会选择要从中获取数据的列,然后选择它。转到它的属性,转到顶级值,然后输入我想要的当前列表的百分比。例如,成本清单。1000名会员,我只想知道我的会员成本最高的2%。我将2%的费用放入,列表显示了我的会员费用的前2% 如何在SAS中执行此操作?我只需使用proc-rank groups=100根据var语句中指定的变量var1创建100个排名组。ranks语句将组放入一个新变量percentile proc rank data=have out=have_ranked grou

在Access中,我会选择要从中获取数据的列,然后选择它。转到它的属性,转到顶级值,然后输入我想要的当前列表的百分比。例如,成本清单。1000名会员,我只想知道我的会员成本最高的2%。我将2%的费用放入,列表显示了我的会员费用的前2%


如何在SAS中执行此操作?

我只需使用
proc-rank

groups=100
根据
var
语句中指定的变量
var1
创建100个排名组。
ranks
语句将组放入一个新变量
percentile

proc rank data=have out=have_ranked groups=100;
  ranks percentile;
  var var1;
run;

data want;
  set have_ranked;
  where percentile ge 98;
run;

您还可以使用proc单变量来获取前2%的截止点,然后选择您需要的obs。比如:

proc univariate data=sashelp.class;
    var weight;
    output out=cutoff pctlpts=98 pctlpre=weight;
 run;

data class;
   set sashelp.class;
   if _n_=1 then set cutoff;
   if weight>=weight98 then output;
run;

额外的数据步骤是不必要的-您可以在proc rank语句中指定的out=dataset上使用where子句。对于不熟悉proc的人,还值得一提的是,第一组是0而不是1。