IN SAS - 我被要求将某个变量添加到XLS文件中,然后打印出该变量的最大和最小3个观察值(在本例中为Hsal)。我通过这个变量整理了数据,但我不知道如何打印出几个最小/最大值 -
data SAL5; set SAL1;
Hsal=(salary/hours);
run;
proc print data=SAL5;run;
proc sort data=SAL5;by Hsal;run;
答案 0 :(得分:3)
您有几个选项,具体取决于您希望数据显示的方式以及是否要显示最大/最小3个观察值或值(即,您是否希望多次显示并列值,这会赢得&#39 ;如果所有值都是唯一的,那么您的数据就会出现问题。)
如果您想要输出1行,那么使用idgroup
中的proc summary
语句是最简单的方法。
否则,您可以利用proc univariate
,默认情况下计算顶部和底部极端观测值或值。您需要使用ods output
创建相关数据集,然后可以打印出来。您可能希望限制输出中的某些变量,您可以使用drop
语句或var
中的proc print
语句轻松完成此操作
我在这里给了你所有3个选项。如果要在1行上显示最大/最小值(选项3),则可以在创建数据集后执行proc transpose
。我以sashelp.class
为例,只在您的数据中用Hsal替换年龄。
/* output on 1 line, max/min 3 observations */
proc summary data=sashelp.class nway;
output out=maxminobs1 (drop=_:)
idgroup (max(age) out[3] (age) = max_age)
idgroup (min(age) out[3] (age) = min_age);
run;
proc print data=maxminobs1;
run;
/* output on 3 lines, max/min 3 observations */
ods output extremeobs = maxminobs2;
proc univariate data=sashelp.class nextrobs=3;
var age;
run;
proc print data=maxminobs2;
run;
/* output on 3 lines, max/min 3 values */
ods output extremevalues = maxminobs3;
proc univariate data=sashelp.class nextrval=3;
var age;
run;
proc print data=maxminobs3;
run;