我有一系列类似的文件,我需要从中创建SAS数据集。我想创建一个宏,给定文件名作为参数,可以输出数据步骤。这在理论上是否可行?
我是SAS的新手,我做了一个简单的例子:
%macro computeFormAndDomain(formName, domainName);
data thing;
input Name $;
datalines;
Bob
Jill
;
run;
%mend;
%computeFormAndDomain("test", "test2");
proc print data=thing;
run;
但是这会给出错误“ERROR:宏COMPUTEFORMANDDOMAIN为DATA步骤生成的CARDS(数据行),这可能会导致错误的结果。” 数据步骤和宏将停止执行。“需要做出哪些更正,或者有更好的方法来实现我想要的目标?”
答案 0 :(得分:3)
根据规则,您不能在宏中使用CARDS / DATALINES。您需要将信息作为已构建的数据集(或其他方式)提供给宏。例如,参见this thread讨论该问题。