将语法传输到SAS EG并集成提示

时间:2014-01-09 04:39:19

标签: sas enterprise-guide

我使用此论坛收集有关在SAS EG任务和查询中创建和使用提示的信息。但是,我似乎无法从Base SAS转移我自己的语法,合并/引用我创建的提示/宏,并让它工作。

目前,每当我在自己的程序中引用提示时(而不是通过SAS EG中的点击选择生成的提示),日志会告诉我SAS无法解析宏引用。

如何将自己的程序转移到SAS EG中,然后集成提示?

我用来开发测试数据集的示例代码:

data work.testscores;
    input Gender $ 1-6 SATScore 8-11 IDNumber 13-20;
    datalines;
Male   1170 61469897
Female 1090 33081197
Male   1240 68137597
Female 1490  9589297
Male   1200 93891897
Female 1080 26212897
Male   1050  8945097
Female 1200 51799397
Male   1600 39196697
;
run;

/ 使用性别变量 /

在提示管理器中创建了性能提示
PROC SQL;
    CREATE table WORK.testscores2 as
        SELECT &Genders, SATScore
    FROM WORK.TESTSCORES
;
QUIT;

日志:

102        PROC SQL;
103           CREATE TABLE WORK.TESTSCORES2 AS
104           SELECT &Genders
WARNING: Apparent symbolic reference GENDERS not resolved.
104           SELECT &Genders
                     _
                     22
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, 
              a numeric constant, a datetime constant, a missing value, BTRIM, INPUT, PUT, 
              SUBSTRING, USER.  

105              FROM WORK.TESTSCORES;
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
106        QUIT;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds

感谢,A

3 个答案:

答案 0 :(得分:1)

我不明白你想用代码实现什么。你想根据你在提示中设置的宏变量的值选择男性或女性SAT成绩吗?

proc sql;
    create table work.testscores2 as
        select gender, satscore
            from work.testscores
                where gender = &genders.;
/* Where the value of &genders is either 'Male' or 'Female' */
quit;

答案 1 :(得分:1)

根据主题启动器的评论判断,看起来有一些误解EG工作中的提示。在运行程序之前,它不是为某些宏变量赋值的工具。 “提示”表示程序会提示您在程序运行期间输入值。但是为此,你必须将你的提示分配给coressponding程序,这样当你运行这个特定的程序时,SAS会调用这个特定的提示。为此:right click on the task -> Properties -> Prompts -> Add

答案 2 :(得分:0)

要使用在提示中创建的宏变量,您需要选中“在整个项目中使用提示值”框。

Prompt