找回密码
 注册
查看: 2884|回复: 0

跟版主crackman读SAS程序(13)

[复制链接]
发表于 2010-8-27 16:17:06 | 显示全部楼层 |阅读模式


原程序在这里
下面这个程序值得学习:

data a;  
        input d0 d1 d2 d3 d4 d5 d6 d7 d8 d9;
cards;
1 3 0 6 9 7 4 2 8 5
10 19 2 8 6 15 3 14 18 11
9 2 10 5 11 3 4 8 1 6
0 3 0 6 9 7 4 0 8 5
;
data b(drop=i j pos);
        set a;
        array d{*} d0-d9;
        array pos_d{*} pos_d0-pos_d9;
        do i=1 to dim(d);
                pos=1;
                do j=1 to dim(d);
                        pos=ifn(d(i)>d(j),pos+1,pos);
                end;
                pos_d(i)=pos;
        end;
run;


采取两个数组,进行外循环和内循环,同时使用迭代
SET A;之后是循环,改变DATA步的运行顺序,也是读入一个观测就执行一次循环处理,循环处理完之后读入第二个观测进行循环处理。
1.首先是对变量设置一个数组,然后对位置设置一个数组
2.首先是外循环,外循环是对变量数组的循环,在外循环 I=1时,开始内循环,内循环是对其他变量与当前的外循环变量比较,判断谁大谁小,同时将结果赋值给POS,POS实现迭代。
3.将结果赋值给POS_D数组中第I个值。

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 19:55 , Processed in 0.020675 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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