我有一个包含多个列的数据集。我可以得到像这样的一列或一组列的极端观察......
PROC Univariate data = Work.tempVal
nextrobs = 5 ;
ods select ExtremeObs ;
ods output ExtremeObs = ExtremeObs;
var B C;
运行;
我想要做的是为每个极端观察打印出数据集行。所以我得到的是我针对极端的列,但我也想要其他列。
答案 0 :(得分:1)
原来id关键字包含其他列
所以......
PROC Univariate data = Work.tempVal
nextrobs = 5 ;
ods select ExtremeObs ;
ods output ExtremeObs = ExtremeObs;
var B;
id A C D;
run;
将返回A,B,C和D列,其中B是极端观察值。
答案 1 :(得分:0)
您可以将proc sql
与outobs=
选项以及相应的排序顺序一起使用。
例如,要获取前5个最大值的行:
proc sql outobs=5 ; create table top5 as select * from mydata order by targetvar descending ; quit ;
显然,如果你有多行具有相同的最大值,你可能想要使用不同的方法。