楼主: wodematlab
2231 7

[原创博文] 宏函数出了点问题??求助 [推广有奖]

  • 6关注
  • 7粉丝

已卖:703份资源

教授

2%

还不是VIP/贵宾

-

威望
0
论坛币
1910 个
通用积分
14.0137
学术水平
12 点
热心指数
19 点
信用等级
10 点
经验
10670 点
帖子
1063
精华
0
在线时间
972 小时
注册时间
2008-4-19
最后登录
2024-7-11

楼主
wodematlab 发表于 2012-9-23 17:19:29 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
904  %macro E2();
905  *%let i=1;
906  %do i=1 %to &N;
907  data E2stock&i;
908      set temp_forcast4;
909      if F2_1090="&&var&i";
910      rename C4=var&i;
911      label C4=var&i;
912  run;
913  %end;
914  %mend;
915  %E2();
NOTE: 由调用宏“E2”生成行。
3     data E2stock&i;     set temp_forcast4;
                          ---
                          180
ERROR 180-322: 语句无效或未按正确顺序使用。
NOTE: 由调用宏“E2”生成行。
3                                                if F2_1090="&&var&i";
                                                 --
                                                 180
ERROR 180-322: 语句无效或未按正确顺序使用。
NOTE: 由调用宏“E2”生成行。
3                                                                          rename C4=var&i;
                                                                           ------
                                                                           180
ERROR 180-322: 语句无效或未按正确顺序使用。
NOTE: 由调用宏“E2”生成行。
3                                                                                               lab
-----
                                                                                                180
3  ! el C4=var&i; run;
ERROR 180-322: 语句无效或未按正确顺序使用。

NOTE: 从数据集 WORK.TEMP_FORCAST4. 读取了 2415 个观测
NOTE: 数据集 WORK.E2STOCK2 有 805 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.00 秒

NOTE: 从数据集 WORK.TEMP_FORCAST4. 读取了 2415 个观测
NOTE: 数据集 WORK.E2STOCK3 有 805 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.00 秒
不知道为啥第一个就运行不出来??
二维码

扫码加我 拉你入群

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

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

关键词:宏函数 forcast rename Stock Error

回帖推荐

bobguy 发表于5楼  查看完整内容

There are some errors. The syntax is wrong either delete it or %*%let i=1; The second one is that macro N is not defined. You may do as %macro E2(N); ... %mend; %E2(5) 904 %macro E2(); 905 *%let i=1; 906 %do i=1 %to &N; 907 data E2stock&i; 908 set temp_forcast4; 909 if F2_1090="&&var&i"; 910 rename C4=var&i; 911 label C4=var&i; 912 run; 913 %end; ...

本帖被以下文库推荐

沙发
wodematlab 发表于 2012-9-23 17:32:02
请大神们帮忙啊!很急。。。。

藤椅
Tigflanker 发表于 2012-9-23 20:21:13
能否把问题描述完整,我们好看的更清楚。

一个是你这个&N,也许有问题,我不知道这个N是否在前面申明过。

另一个,var&i应该写成:var&i.  (少了个点)
Bye SAS.
若有缘,能重聚。

板凳
bobguy 发表于 2012-9-23 22:38:10
There are some errors. The syntax is wrong either delete it or %*%let i=1; The second one is that macro N is not defined. You may do as

%macro E2(N);
...
%mend;
%E2(5)




904  %macro E2();
905  *%let i=1;
906  %do i=1 %to &N;
907  data E2stock&i;
908      set temp_forcast4;
909      if F2_1090="&&var&i";
910      rename C4=var&i;
911      label C4=var&i;
912  run;
913  %end;
914  %mend;
915  %E2();


已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

报纸
wodematlab 发表于 2012-9-24 08:03:35
谢谢了,N我前面定义过的,的确是注释出了问题。。

地板
00810112 发表于 2012-9-24 11:45:54
bobguy 发表于 2012-9-23 22:38
There are some errors. The syntax is wrong either delete it or %*%let i=1; The second one is that ma ...
佩服佩服,这种错误我也经常见,之前一直不太清楚原因啊,这下找到方向了

7
kittyforever 发表于 2013-1-18 09:39:47
bobguy 发表于 2012-9-23 22:38
There are some errors. The syntax is wrong either delete it or %*%let i=1; The second one is that ma ...
明白了

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-30 07:54