SAS 编程技巧 - PROC SQL(一)

发布时间 2023-07-31 22:21:33作者: Snoopy1866

SAS 编程技巧 - PROC SQL(一)

SQL 全称 Strucured Query Language,即结构化查询语言,广泛应用于关系型数据库中。

SAS Base 使用 PROC SQL 提供了对 SQL 的实现。PROC SQL 过程可以帮助你完成以下任务:

  • 创建数据集、视图和索引
  • 删除数据集、视图和索引
  • 修改数据集的结构
  • 更新数据集的数据
  • 从数据集或视图中获取数据
  • 从数据集或视图中合并数据
  • 汇总统计

上述任务可以用四个字简要概括:增、删、改、查

在这一节中,我们主要讨论如何使用 SQL 创建数据集、视图和索引。

创建数据表

使用 CREATE TABLE 语句可以创建一个数据集。例如:下述代码创建了一个新的数据集:

proc sql noprint;
    create table DM
        (USUBJID char(20), SITEID char(10), SEX char(4), AGE num, HEIGHT num, WEIGHT num);
quit;

该数据集名称为 DM,包含 3 个字符型变量和 3 个数值型变量。变量的定义包括变量名和变量类型,变量名可以是任何合法的 SAS 名称,变量类型可以是 CHARACTERNUMERIC,可以分别简写为 CHARNUM

此外,在定义变量的时候还可以额外定义变量修饰符,包括:变量标签、输入格式、输出格式等,例如:

proc sql noprint;
    create table DM
        (USUBJID char(20) informat = $20. format = $20.     label = "受试者唯一标识符",
         SITEID char(10)  informat = $10. format = $10.     label = "中心编号",
         SEX char(4)      informat = $4.  format = $4.      label = "性别",
         AGE num          informat = 8.   format = 8.       label = "年龄(岁)",
         HEIGHT num       informat = 8.2  format = 8.2      label = "身高(cm)",
         WEIGHT num       informat = 8.2  format = 8.2      label = "体重(kg)");
quit;

运行后查看数据集 DM 属性:

img

CREATE TABLE 语句还支持基于现有数据集结构创建空白数据集,只需使用 LIKE 关键字即可:

proc sql noprint;
    create table DM1 like DM;
quit;

上述代码将会创建一个名为 DM1 的数据集,其结构与数据集 DM 完全一致,但不含任何观测。