宏功能内的数据步骤

时间:2015-11-04 18:20:57

标签: sas sas-macro

我有一系列类似的文件,我需要从中创建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(数据行),这可能会导致错误的结果。”         数据步骤和宏将停止执行。“需要做出哪些更正,或者有更好的方法来实现我想要的目标?”

1 个答案:

答案 0 :(得分:3)

根据规则,您不能在宏中使用CARDS / DATALINES。您需要将信息作为已构建的数据集(或其他方式)提供给宏。例如,参见this thread讨论该问题。