如何在 sas 中使用 %let 语句(附示例)


您可以使用 SAS 中的%LET语句创建宏变量,该变量可以存储稍后可以在程序中使用的值。

以下示例显示了在实践中使用%LET语句的两种常见方法。

示例 1:使用 %LET 指令在 SAS 中存储数值

假设我们在 SAS 中有以下数据集,其中包含有关各种篮球运动员的信息:

 /*create dataset*/
data my_data;
input team $points;
datalines ;
At 22
At 14
At 23
B 30
B 18
B20
C13
C12
C26
;
run;

/*view dataset*/
proc print data =my_data; 

我们可以使用%LET语句创建一个名为points_cutoff的宏变量,其值为20

然后,我们可以稍后通过在变量前面使用与号 ( & ) 来引用该变量,以创建一个新数据集,其中包含一个新列,指示每个玩家的得分是否超过 20 分:

 /*assign value of 20 to macro variable*/
%let points_cutoff = 20;

/*use macro variable to create new column called good_player*/
data new_data;
 set my_data;
 good_player = points > &points_cutoff;
run ;

/*view new dataset*/
proc print data = new_data; 

请注意,如果列的值大于20,则名为good_player 的新列包含值1 ;如果点列的值不大于20 ,则名为 good_player 的新列包含值0

示例 2:使用 %LET 语句在 SAS 中存储字符串值

我们还可以使用SAS中的%LET语句来创建存储字符串值的宏变量。

以下代码演示如何使用%LET语句创建一个名为table_title的变量,其中包含“篮球数据”值,我们稍后可以引用该值来打印数据集的标题:

 /*create dataset*/
data my_data;
input team $points;
datalines ;
At 22
At 14
At 23
B 30
B 18
B20
C13
C12
C26
;
run ;

/*assign string to macro variable*/
%let table_title = " Basketball Data ";

/*print dataset with title*/
proc print data =my_data;
    title &table_title;
run ; 

数据集包含我们在宏变量中指定的标题。

注意:您可以找到 SAS LET指令的完整文档  在这里

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

如何在SAS中使用过程摘要
如何在 SAS 中使用 Proc Tabulate
如何在 SAS 中使用 Proc 排序规则

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注