SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 499|回复: 1
打印 上一主题 下一主题

如何求第二小值,大家发表意见:)

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2004-6-3 00:33:03 | 只看该作者

如何求第二小值,大家发表意见:)

可以用min(var1,var2...) max(var1,var2...)函数求var1,var2...中的最小值和最大值。但是如何用一种简单的方法求第二小值或者第二大值呢?更直接的方法是给var1 var2 的取值排一个序,用r1 r2...变量来表示。

如;
var1 var2 ... r1 r2 ...
20 12 ...12 20...
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2004-6-3 16:04:18 | 只看该作者

这样写如何?

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;

这样写有什么问题吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-1-10 07:59 , Processed in 0.180594 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表