SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

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

求助

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2006-5-18 19:38:53 | 只看该作者

求助

我编了一个计算两两观测之间欧氏距离的宏程序,代码如下:
%macro distance(mydata);
data distance_matrix(type=distance);
array dj(*) dj1-dj26;
retain dj1-dj26;
do row= 1 to 26;
   set mydata point=row;
   array varb(*) x1-x4;
   array save(*) save1-save4;
do g=1 to 4;
   save(g)=varb(g);
end;
do col=1 to row;
   set mydata point=col;
   num=0;
   den=0;
do g=1 to 4;
   num=num+(varb(g)-save(g))**2;
end;
   dj(col)=sqrt(num);
end;
   output;
end;
   stop;
   keep dj1-dj26;
run;
%mend distance;
我想改造这个宏程序,宏参数是一个数据集名称,希望宏程序里的数组根据数据集观测个数来定义,有几个问题未解决:(1)如何检测数据集mydata的观测个数?简记为n;(2)如何根据n定义数组dj的大小?(3)数组变量名dj1-dj17是否能由变量产生并在相应语句处调用?谁有更好的SAS方法?请高手不吝赐教!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2006-5-24 17:15:48 | 只看该作者

hui

这几个问题在sasor.com论坛上去找,这些问题很多高手如winslow,ahuige等等发过这方面的帖子,你可以去查看.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 05:32 , Processed in 0.067105 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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