楼主: lintion
1365 2

[SAS EM] 求大神江湖救急:SAS宏编写问题 [推广有奖]

  • 0关注
  • 0粉丝

小学生

71%

还不是VIP/贵宾

-

威望
0
论坛币
985 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
53 点
帖子
3
精华
0
在线时间
11 小时
注册时间
2011-11-5
最后登录
2018-10-8

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
首先题目是   写一个自定义宏函数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还是不行呢?
二维码

扫码加我 拉你入群

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

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

关键词:SAS宏 江湖救急 filename sysfunc output sas

沙发
mathkkk 学生认证  发表于 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);
我没懂你的意思,不过,这是我把你的程序改成的宏。能否说的详细一点吗?

使用道具

藤椅
lintion 发表于 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);
你好  感谢你的热心回复,其实说白了就是生成不重复的全排列的宏并输出  我打算先全部生成  再删除不符合的组合  当然  欢迎不同的方法

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 05:22