全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
8119 5
2016-12-11
悬赏 100 个论坛币 已解决
遇到一个问题,在SAS宏中使用%inc调用一段文本文件,内容如下:

   %if   &s5a.>   %then %do;
                            data &dsn.;set &dsn.;
                            ……
                            run;
                        %end;

上面这段内容使用a.txt保存。

在宏中使用
%inc "&path.\a.txt";
调用,运行中会出现
                 ERROR: %END 语句在开型代码中无效。
                ERROR: %IF 语句在开型代码中无效。
这种提示。
如果把文本文件的内容直接拷贝到宏中,则可以正常运行。请问,哪位高手知道这个是什么原因?该如何修改?谢谢



最佳答案

孤单的我们 查看完整内容

我理解的是%inc语句的作用并非把external file置入macro中,而是单独执行的,具体顺序我还不清楚。 修改的话,可以把外部a.txt的开放语句用宏括起来 然后在你sas macro中%inc语句后插入一行%test
二维码

扫码加我 拉你入群

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

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

全部回复
2016-12-11 21:38:30
我理解的是%inc语句的作用并非把external file置入macro中,而是单独执行的,具体顺序我还不清楚。

修改的话,可以把外部a.txt的开放语句用宏括起来
复制代码

然后在你sas macro中%inc语句后插入一行%test
二维码

扫码加我 拉你入群

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

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

2016-12-12 10:35:31
%if %then这种宏语句,如果不包含在宏里面,是没有办法运行的
二维码

扫码加我 拉你入群

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

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

2016-12-12 10:48:34
mingfeng07 发表于 2016-12-12 10:35
%if %then这种宏语句,如果不包含在宏里面,是没有办法运行的
包含在宏里面。
区别是:如果放在文本文件里再在宏里调用文本文件则显示有问题,如果把文本文件内容直接粘贴在宏里面,则显示正常。
二维码

扫码加我 拉你入群

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

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

2016-12-12 10:59:04
The %INCLUDE statement executes statements immediately. The INCLUDE command brings the included lines into the Program Editor window but does not execute them. You must issue the SUBMIT command to execute those lines.
二维码

扫码加我 拉你入群

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

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

2016-12-12 14:06:09
孤单的我们 发表于 2016-12-11 21:38
我理解的是%inc语句的作用并非把external file置入macro中,而是单独执行的,具体顺序我还不清楚。

修改 ...
貌似很有道理的样子。有空时我再测试一下。先谢谢您的热心。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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