SAS中文论坛

标题: 如何求第二小值,大家发表意见:) [打印本页]

作者: shiyiming    时间: 2004-6-3 00:33
标题: 如何求第二小值,大家发表意见:)
可以用min(var1,var2...) max(var1,var2...)函数求var1,var2...中的最小值和最大值。但是如何用一种简单的方法求第二小值或者第二大值呢?更直接的方法是给var1 var2 的取值排一个序,用r1 r2...变量来表示。

如;
var1 var2 ... r1 r2 ...
20 12 ...12 20...
作者: shiyiming    时间: 2004-6-3 16:04
标题: 这样写如何?
data aaa;
input v1-v5;
cards;
5 4 3 2 1
;
run;

%macro rank();
data bbb;
set aaa;
array var(*) v1-v5;
r1=min(of v1-v5);
%do i=2 %to 5;
%do j=1 %to 5;
if var(&j)=min(of v1-v5) then var(&j)=max(of v1-v5)+1;
%end;
r&i=min(of v1-v5);
%end;
run;
%mend;
%rank;

这样写有什么问题吗?




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2