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

跟版主crackman读SAS程序(3)

[复制链接]
发表于 2010-8-27 14:30:38 | 显示全部楼层 |阅读模式
本帖最后由 生统家园推荐 于 2010-8-27 15:32 编辑

data a2;
num=0;
do _n_=1 by 1 until(last._col0);
set a1;
by _col0;
num+1;
output;
end;
run;
proc sql;
select max(num) into : obs
from a2;
quit;
%macro aa();
data a3;
do i=1 by 1 until(last._col0);
set a1;
by _col0;
array m(*) m1-m%left(&obs.);
m(i)=rate3_change;
end;
drop i rate3_change;
run;
%mend;
%aa;

这个哥们先后用转置和数据实现了按照要求读入数据并实现既定的数据集格式
先分析这个哥们的程序:
1.建立数据集A1,并进行排序,为后面的SET做一个准备
2.在建立数据集A2的时候,设置一个变量NUM,这个变量是表示有每一_COLO重复的次数,这个很关键,因为后面就是根据重复的次数来设置数组的。
3.将每一个_COLO重复的次数的变量NUM,用SQL赋值给一个宏变量,然后作为数组的界值,而且随着_n_的不同,引起的NUM不同,导致数组的界值不同,因为相同的_COLO的rate3_change能在一个观测里体现出来。

这个里面最关键的是寻找宏循环中数组的界值与_COLO重复次数,用了一个NUM和宏变量&obs.
值得学习的一点
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 22:05 , Processed in 0.023212 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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