如何在 sas 中使用 if-then-else(附示例)


您可以在 SAS 中使用IF-THEN-ELSE语句,如果条件为真,则返回一个值;如果条件不为真,返回另一个值。

该语句使用以下基本语法:

 if var1 > 30 then var2 = 'good';
else var2 = 'bad';

您还可以将多个ELSE IF语句链接在一起,以根据更多条件返回更多潜在值:

 if var1 > 35 then var2 = 'great';
else if var1 > 30 then var2 = 'good';
else var2 = 'bad';

以下示例展示了如何在实践中针对 SAS 中的以下数据集使用这些语句:

 /*create dataset*/
data original_data;
    input team $points;
    datalines ;
Cavs 12
Cavs 14
Warriors 15
Hawks 18
Mavs 31
Mavs 32 
Mavs 35
Celtics 36
Celtics 40
;
run ;

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

示例 1: SAS 中的 IF-THEN-ELSE

我们可以使用以下IF-THEN-ELSE语句创建一个名为rating的新变量,如果列中的值大于 30,则该变量取值“good”,否则取值“bad”:

 /*create new dataset with new variable called rating*/
data new_data;
    set original_data;
    if points > 30 then rating = 'good';
    else rating = 'bad';
run ;

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

请注意,如果列的值大于 30,则名为“评级”的新列将取值“好”,否则将取值“差”。

示例 2: SAS 中的 IF-THEN-ELSE IF

我们可以使用以下IF-THEN-ELSE IF语句来创建一个名为rating的新变量,该变量采用以下值:

  • 如果分数大于 35,则为“超级”
  • 否则,如果分数大于 30,则为“好”
  • 否则,“不好”

以下代码展示了如何执行此操作:

 /*create new dataset with new variable called rating*/
data new_data;
    set original_data;
    if points > 35 then rating = 'great';
    else if points > 30 then rating = 'good';
    else rating = 'bad';
run ;

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

称为评级的新列根据列中的相应值采用“优秀”、“良好”或“差”值。

注意:您可以随意使用任意数量的 ELSE IF语句,根据不同的条件返回任意数量的不同值。

其他资源

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

如何在 SAS 中使用 IF-THEN-DO
SAS中如何删除重复项
SAS中如何用零替换缺失值

添加评论

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