SAS 编程技巧 - PROC SQL(二)
上一节中,我们介绍了如何使用 SQL 创建和删除数据集、视图和索引。这一节我们介绍如何使用 SQL 修改数据集的结构和更新数据集中的数据。
修改数据集结构
使用 ALTER TABLE
可以修改数据集的结构,包括增加、删除变量、修改变量属性,以及对数据完整性约束(integrity constraints)的操作。
数据完整性约束涉及到较高级的概念,我们将在未来的章节中介绍它,这一节我们只介绍对变量的增加、删除和修改操作。
新增变量
使用 ADD
子句可以新增一个变量,我们可以在新增变量的同时指定变量的属性。
proc sql noprint;
alter table dm
add BRTHDAT num label = "出生日期" format = yymmdd10.;
quit;
上述代码在数据集 DM 中新增了一个变量 BRTHDAT,并指定了标签和输出格式。
可以在一个 ADD 子句中新增多个变量:
proc sql noprint;
alter table dm
add BIRTHDAT num label = "出生日期" format = yymmdd10.,
RANDDT num label = "随机日期" format = yymmdd10.,
RNUMBER num label = "随机号",
ARM char(10) label = "组别";
quit;
删除变量
使用 DROP
子句可以删除一个变量,用法与 ADD
子句类似。
proc sql noprint;
alter table dm
drop BIRTHDAT, BMI;
quit;
注意:删除某个变量时,使用该变量定义的索引(包括简单索引和复合索引)都将一并被删除。
修改变量属性
使用 MODIFY
子句可以修改一个变量的属性,用法与 ADD
子句类似。
proc format;
value $sex
"M" = "男"
"F" = "女";
run;
proc sql noprint;
alter table dm
modify RANDDT format = e8601da10.,
SEX format = $sex.;
quit;
上述代码修改了数据集 DM 中变量 RANDDT 和 SEX 的属性,分别将它们的输出格式修改为 e8601da10.
和 $sex.
。
注意:ALTER TABLE 语句无法修改变量名和变量长度,如需修改这些属性,请使用 CREATE TABLE 或 SELECT 语句完成,这将在未来的章节中进一步介绍。