全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4726 10
2012-01-31
求助 :宏嵌套时候出现的问题。
ERROR: 条目锁定不可用于 GETDATA_EASY.MACRO(目录 WORK.SASMACR 中),由 DMS Process 锁定。
ERROR: 条目 GETDATA_EASY.MACRO 已经在目录 WORK.SASMACR 中存在

二维码

扫码加我 拉你入群

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

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

全部回复
2012-1-31 17:24:03
求帮助~

我就是想用简便的方法拆分数据集,按照一定的规律,两个宏,一个宏用来循环,一个宏用来拆分。
二维码

扫码加我 拉你入群

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

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

2012-2-1 08:27:22
libname fund  "F:\SAS\20120120";
   %macro getdata_easy1(n);
         data fund.d&n.;
         set fund.refine20120120;
         keep _COL(9+&n.)  _COL(42+&n.) _COL(43+&n.)  _COL(78+&n.)_COL(79+&n.)   _COL(80+&n.)   ;
          run;
  %mend getdata_easy1;
  %macro getdata_easy(i);
   %local n=1;
   %do %while(n<=&i.);
          %getdata_easy1(n);
        n=(n+1);
   %end;
  %mend getdata_easy;

%getdata_easy(20)


代码如上,getdata_easy1是用来拆分数据集的,getdata_easy是用来循环的,一共要循环20次,拆分数据集为20个。
二维码

扫码加我 拉你入群

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

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

2012-2-1 08:28:27
求帮助!!!!!
二维码

扫码加我 拉你入群

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

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

2012-2-1 10:06:41
sophiesdaisy 发表于 2012-2-1 08:28
求帮助!!!!!
Try the following code.

libname fund  "F:\SAS\20120120";
%macro getdata_easy1(n);
%let var1 = %eval( 9+&n.);
%let var2 = %eval(42+&n.);
%let var3 = %eval(43+&n.);
%let var4 = %eval(78+&n.);
%let var5 = %eval(79+&n.);
%let var6 = %eval(80+&n.);
data fund.d&n.;
        set fund.refine20120120;
        keep %do ii = 1 %to 6;
                        %sysfunc(compress(_COL&&var&ii..))
                 %end;;
run;
%mend getdata_easy1;
%macro getdata_easy(i);
%local %let n = 1;
%do %while(&n.<=&i.);
        %getdata_easy1(&n.);
        %let n = %eval(&n.+1);
%end;
%mend getdata_easy;

%getdata_easy(20);
二维码

扫码加我 拉你入群

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

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

2012-2-1 10:39:38
maidenhan 发表于 2012-2-1 10:06
Try the following code.

libname fund  "F:\SAS\20120120";
啊 多谢好人+高人 我实施~~
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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