根据文件中的数据生成并运行SAS代码

时间:2016-10-31 11:56:40

标签: sas sas-macro

我编写了几个SAS宏函数,每个函数都有一些输入参数。让我们说这个例子的函数是:

%macro add(dataset,column,number);
data &dataset;
    set &dataset;
    &column = &column + &number;
run;
%mend;

%macro multiply(dataset,column,number);
data &dataset;
    set &dataset;
    &column = &column * &number;
run;
%mend;

我想要做的是创建单独的文件,如果此功能,将包含调用序列。内容示例可以是:

  • add,work.tmp,value,3;
  • add,work.tmp,value2,5;
  • 乘,work.tmp,value,2;
  • ...

你能告诉我运行所有这些电话的最佳方法吗?我是否必须使用一个宏来生成基于此文件的SAS代码而不是运行它?或者有一种更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

最简单的方法是编写另一个调用宏的SAS程序。您的示例文件非常接近于此。只需使用%add()或%multiply()

包围每行参数

另一种技术(虽然更复杂)是编写一个数据步骤,它读取你的指令文件,解析它,然后重复调用execute语句来调用你的宏。