SAS 创建新变量
在对SAS数据集进行处理时,经常需要根据原有变量或变量值生成新变量。根据要实现功能的不同,SAS提供了多种方法,例如通过数据集选项RENAME=(RENAME语句)、赋值语句、求和语句等来实现不 同的功能。
1 数据集选项RENAME=和RENAME语句
在DATA步中,可使用数据集选项RENAME=或RENAME语句修改 一个或多个变量的名称。跟前面介绍过的数据集选项KEEP=和DROP= 一样,数据集选项RENAME=也可用于DATA语句中的输出数据集和 SET语句中输入数据集。其基本形式如下:
RENAME=(旧变量名-1=新变量名-1 <...旧变量名-n=新变量名-n >) RENAME语句的基本形式如下: RENAME 旧变量名-1=新变量名-1 <...旧变量名-n=新变量名-n >;
其中:
- ·旧变量名指定在输入数据集中或当前DATA步中新创建的变量。
- ·新变量名指定在输出数据集中使用的变量名或变量名称列表。新的变量名仅被写入输出数据集。
- ·数据集选项RENAME=或RENAME语句可以修改多个变量的名称。
将数据集saslib.contact中的变量Name重命名为 Full_Name,并将原有Name中的姓和名分开为Last_Name和 First_Name。
下面3段代码分别在SET语句中使用数据集选项RENAME=、在DATA语句中使用数据集选项RENAME=和使用RENAME语句来实现。
代码1:
data work.contact2_rn; set saslib.contact (rename=(Name=Full_Name)); First_Name=scan(Full_Name,1); Last_Name = scan( Full_Name,2); run;
代码2:
data work.contact2_rn (rename=(Name=Full_Name)); set saslib.contact;
First_Name=scan(Name,1); Last_Name