如何在 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;
输出:
两者的主要区别如下:
- 场景:根据现有数据创建一个新变量,然后丢弃不相关的变量
通过使用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将仅包含缺失值。
- 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;
输出:
- 场景:打印时删除变量
DROP 语句只能在 DATA 步中使用,而DROP = option可以在 DATA 步和 PROC 步中使用(用于显示目的)。proc print data = outdata (drop = class); where gender = 'F'; run;
输出: