全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1569 2
2017-08-29
首先题目是   写一个自定义宏函数PNN(filename,N)来输出的所有不重复的组合数到一个数据集中
其中:
Filename表示输出数据集名
N表示N个数的全排列。
我的思路是分成两部:1.实现n个变量的全部组合。2.进行不重复筛查。
然后第一步宏想实现的功能是根据行数与变量n(下文n=4)的关系给X&i(下文是X4)赋值,单独编写可以运行,但改成宏失败
data try ;

do a=1 to 4**5;

   x4=mod(ceil(a/4**4),4) ;
   if x4=0 then x4=4;
  output;

   end;
run;
烦请高手帮忙。非常感谢!
另:请问mod,ceil,output这些函数改成宏时,为什么前面加了%sysfunc还是不行呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-8-29 15:58:13
%macro pnn(data,n);
data &data. ;
do a=1 to &n.**(&n.+1);

   x&n.=mod(ceil(a/&n.**&n.),&n.) ;
   if x&n.=0 then x&n.=&n.;
  output;

   end;
run;
%mend pnn;

%pnn(table4,4);
我没懂你的意思,不过,这是我把你的程序改成的宏。能否说的详细一点吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-29 17:15:10
mathkkk 发表于 2017-8-29 15:58
%macro pnn(data,n);
data &data. ;
do a=1 to &n.**(&n.+1);
你好  感谢你的热心回复,其实说白了就是生成不重复的全排列的宏并输出  我打算先全部生成  再删除不符合的组合  当然  欢迎不同的方法
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群