📜  如何在 SAS 编程中从数据集中删除变量?

📅  最后修改于: 2022-05-13 01:54:20.905000             🧑  作者: Mango

如何在 SAS 编程中从数据集中删除变量?

本主题是关于如何从 SAS 数据集中删除变量。它包括从数据中删除变量的各种方法。在 SAS 中,有两种方法可以删除变量:

  • DROP = 数据集选项
  • 删除语句

让我们从创建数据集开始:

DATA outdata; 
   INPUT roll_num gender $ class subj1 subj2 subj3; 
   DATALINES; 
21 F 6 10 17 20
13 F 6 21 25 17
19 F 9 19 12 15
10 M 12 7 21 25
25 F 10 15 22 13
13 F 11 20 22 27
;
proc print;
run;

输出:

两者的主要区别如下:

  1. 场景:根据现有数据创建一个新变量,然后丢弃不相关的变量

    通过使用DROP 语句,我们可以命令 SAS 仅在 DATA 步完成时删除变量。

    data readin;
    set outdata;
    totalsum = sum(subj1, subj2, subj3);
    drop subj1 subj2 subj3;
    run;
    

    输出:

    在上面的示例中,我们简单地要求 SAS 将变量subj1、subj2 和 subj3中的所有值相加以产生一个新变量totalsum ,然后删除旧变量subj1、subj2 和 subj3

    使用 DROP = Option 的后果

    data readin;
    set outdata (drop = subj1 subj2 subj3);
    totalsum = sum(subj1, subj2, subj3);
    run;
    

    输出:

    在将数据集outdata复制到新数据集readin后,变量subj1、subj2 和 subj3将不可用。因此totalsum将仅包含缺失值。

  2. DROP 语句可以在 DATA 步骤中的任何地方使用,而DROP = option必须跟在 SET 语句之后。

    删除语句:

    data readin;
    set outdata;
    if gender = 'F';
    drop class;
    run;
    

    或者

    data readin;
    set outdata;
    drop class;
    if gender = 'F';
    run;
    

    删除 = 选项

    data readin;
    set outdata (drop = class);
    if  gender = 'F';
    run;
    

    输出:

  3. 场景:打印时删除变量
    DROP 语句只能在 DATA 步中使用,而DROP = option可以在 DATA 步和 PROC 步中使用(用于显示目的)。
    proc print data = outdata (drop = class);
    where gender = 'F';
    run;
    

    输出: