如何在if语句中使用变量四分位和四分位间距?

时间:2019-02-05 20:28:10

标签: sas

我正在使用SAS清理数据,这对我来说是一个新手,我正在尝试创建一个新变量,在该变量中,我将上限和下限之外的值设置为上限和下限的值。我通过Q1-1.5 * IQR确定了发言权,并通过Q3 + 1.5 * IQR确定了上限。使用if语句使新变量具有以下代码。我不知道如何仅通过手工计算来计算帽子和地板的价值,但我觉得应该有一个更好的方法。如何在代码中使用四分位值和IQR?

data practice.ipo_refined2;
    set practice.ipo;
    if 'Price.Revision'n > Q3 + qrange*1.5 then 'Price.Revision.Windsor'n = Q3+qrange*1.5;
    else if 'Price.Revision'n < Q1-qrange*1.5 then 'Price.Revision.Windsor'n = Q1-qrange*1.5;
    else 'Price.Revision.Windsor'n = 'Price.Revision'n;
    keep 'Initial.Return'n 'Price.Revision'n 'High.Tech'n 'Price.Revision.Windsor'n;
run;

1 个答案:

答案 0 :(得分:0)

我猜想这个例子会有所帮助。

proc summary data=sashelp.class;
   var height;
   output out=q q1=q1 q3=q3 qrange=qrange;
   run;
proc print;
   run;
data class;
   set sashelp.class;
   if _n_ eq 1 then set q;
   run;
proc print;
   run;

enter image description here