我使用这个论坛收集有关在SAS、EG任务和查询中创建和使用提示的信息。但是,我似乎无法将自己的语法从Base、I/reference提示符/宏中传递出来,并使其正常工作。
目前,每次我在自己的程序中引用提示符(而不是由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;使用性别变量/在提示符管理器中提示/created性别
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
发布于 2014-01-09 22:45:16
从主题启动者的评论来看,似乎在EG的工作中出现了一些误解。在运行程序之前,它不是为某个宏变量赋值的工具。“prompts”意味着程序在程序运行期间提示您输入值。但要做到这一点,您必须将提示符分配给编码程序,这样当您运行这个特定程序时,SAS就会启用这个特定的提示。为了这个:right click on the task -> Properties -> Prompts -> Add。
发布于 2014-01-09 10:01:11
我不明白你想通过你的代码实现什么。您希望根据您在提示符中设置的宏变量的值选择只选择男性或女性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;发布于 2014-01-09 05:16:14
若要使用在提示符中创建的宏变量,需要选中“在整个项目中使用提示值”框。

https://stackoverflow.com/questions/21011703
复制相似问题