楼主: wanzionline
7031 5

[原创博文] 求助:sas如何使用宏命令批量处理数据集 [推广有奖]

  • 0关注
  • 2粉丝

本科生

39%

还不是VIP/贵宾

-

威望
0
论坛币
6886 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1015 点
帖子
86
精华
0
在线时间
71 小时
注册时间
2011-10-26
最后登录
2021-1-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
具体问题是这样:想对一系列的数据集进行批量处理。需处理的数据集名称存储在一个数据集中(名字的规律为:data001-data100),请问如何使用宏命令来调用该数据集中的变量,一次调用一个观测?
我一般像下边这样使用,但是总是无法一次性的调用:
%macro example(number1,number2);
%do i=&number1 %to &number2;
%let number=00&i;
data &number;
.........
run;
%end;
%macro example;
然后先执行 example(data001---data009);
之后改为%let number=0&i;
再执行example(data010---data099);
之后还得再改为%let number-&i;
最后执行example(data100,data100);
这样太麻烦了,请问有没什么好的办法啊?
(注:出现以上问题的原因我猜是因为%do 命令的时候自动将&i变为数字型?然后丢失了前边的‘00’?)
请问有没有好办法直接从数据集中依次读入,然后进行操作啊?
二维码

扫码加我 拉你入群

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

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

关键词:批量处理数据集 如何使用 批量处理 处理数据 宏命令 example number 宏命令 如何

沙发
stormhoof 发表于 2012-8-27 11:03:00 |只看作者 |坛友微信交流群
%let number=%substr(00&i,%length(00&i)-2,3);
lz试试这样可以不

使用道具

藤椅
wanzionline 发表于 2012-8-27 12:32:24 |只看作者 |坛友微信交流群

求助:sas如何使用宏命令批量处理数据集

高手!多谢指教!应该可以,呵呵!
不过还想问下,如何把数据集中的名称赋给宏变量啊?
例如上例:如果把data001-100放在一个数据集A中:
data A:
data001
data002
...
data100
如何将(data*)依次赋给宏变量,从而执行上边的程序以达到目的啊?

使用道具

板凳
stormhoof 发表于 2012-8-27 13:12:41 |只看作者 |坛友微信交流群
%macro example(number1,number2);
%do i=&number1 %to &number2;
%let number=%substr(00&i,%length(00&i)-2,3);
data data&number;
...............
run;
proc append base=A data=data&number;
run;
%end;
%mend;
%example(1,100)
把data001-date100放在A中,是这个意思吗

使用道具

报纸
wanzionline 发表于 2012-8-27 14:20:05 |只看作者 |坛友微信交流群
楼上十分感谢,不过我的想法是将data001-data100当做文件名来调用,就像下边这样:
我现在的想法就是想执行一个程序,而这个程序就需要调用名为data001、data002、data003.....data100数据集。而在test数据集中有一个变量name,存放了data001、data002、data003......data100共计100个观测,每个观测都对应一个数据集名。
问题是如何依次调用data001,data002知道data100啊?

使用道具

地板
ziyenano 发表于 2012-8-27 16:35:19 |只看作者 |坛友微信交流群
wanzionline 发表于 2012-8-27 14:20
楼上十分感谢,不过我的想法是将data001-data100当做文件名来调用,就像下边这样:
我现在的想法就是想执行 ...
data _null_;
set test;
call execute(compress('%macro_name('||name||')'));run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
灯小登 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

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

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

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

GMT+8, 2024-5-1 13:08