请选择 进入手机版 | 继续访问电脑版
楼主: 冰棱
1127 5

宏程序中的一些问题 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

21%

还不是VIP/贵宾

-

威望
0
论坛币
344 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
1995 点
帖子
107
精华
0
在线时间
118 小时
注册时间
2006-2-27
最后登录
2018-6-15

冰棱 发表于 2014-12-8 15:52:20 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
一个数据集里的数据是按“分区”排列的,共有20个“分区”
现在需要把这数据分为20个,分别存放,即每一个相同“分区”字段的数据为一个文件

程序如下:
/*列出20个文件名*/
%macro data1;
%do i=1 %to 20;
temp&i.
%end;
%mend;

/*目前的文件名*/
%macro out1(m);
temp&i.
%mend;

/*主程序*/
%macro do1;
data %data1;
y+first.分区;
output %out1(y);
run;
%mend;

%do1;
现在出的问题是,out1(y),返回的是tempy;
不能返回正确的结果。求大神解~

二维码

扫码加我 拉你入群

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

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

关键词:宏程序 output Macro outpu First 程序

Tigflanker 发表于 2014-12-8 17:49:27 |显示全部楼层 |坛友微信交流群
  1. proc sort data = sashelp.class out = class;
  2.   by age;
  3. run;

  4. data _null_ ;
  5.   dcl hash h(dataset: 'class');     *Load an empty dataset under 9.2 to instead of Clear function.;
  6.   h.definekey(all:'y');
  7.   h.definedone();
  8.   h.clear();

  9.   do until(last.age);
  10.     set class;
  11.     by age;

  12.     h.add();
  13.   end;

  14.   h.output(dataset:cats('class_',age));
  15. run;
复制代码
Try this.

使用道具

冰棱 发表于 2014-12-8 18:00:41 |显示全部楼层 |坛友微信交流群
Tigflanker 发表于 2014-12-8 17:49
Try this.
有启发,不错~~3Q

使用道具

为了避免多次读取原始的DATASET以提高效率,试试这个:

  1. /*Age*/
  2. proc sql;
  3.         create table age as
  4.                 select distinct AGE
  5.         from sashelp.class
  6.         ;
  7. quit;

  8. /*Write the generated code to a temporary file*/
  9. filename code temp;
  10. data _null_;
  11.     file code;
  12.     set age;
  13.     put ' class_' AGE '(where=(AGE=' AGE '))' @@;
  14. run;

  15. data %inc code/source2;;
  16.     set sashelp.class;
  17. run;
复制代码

使用道具

gaotao0727 发表于 2014-12-9 09:27:22 |显示全部楼层 |坛友微信交流群
老师她摸我 发表于 2014-12-8 21:46
为了避免多次读取原始的DATASET以提高效率,试试这个:
很赞~~~

使用道具

gaotao0727 发表于 2014-12-9 09:32:38 |显示全部楼层 |坛友微信交流群
Tigflanker 发表于 2014-12-8 17:49
Try this.
hash表,学习了~~

使用道具

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

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

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

GMT+8, 2024-3-29 17:16