SAS |删除空行
通常,当我们从外部源(例如 Excel/CSV 文件)导入数据时,它会加载完全空白的额外行。有时数据库中的空值也会影响所需的输出,因此有必要检查缺失的案例并相应地执行操作
例子:
输入:示例数据集如下所示,有四个变量——1 个字符和 3 个数字。它将在示例中进一步用于演示如何删除空行。
Name | Phys | Chem | Maths |
---|---|---|---|
Shubhash | 70 | 68 | 66 |
– | |||
Samar | 55 | 85 | |
Ashutosh | 54 | 78 | 89 |
– | |||
Varun | 50 | 96 | 85 |
Pratiksha | 68 | 93 |
创建 SAS 数据集
下面定义的代码是执行删除空操作的示例数据集。
data outdata;
LENGTH name $12.;
input name $ phys chem maths ;
infile datalines missover;
datalines;Shubhash 70 68 66
samar 55 . 85
ashutosh 54 78 89
varun 50 96 85
pratiksha . 68 93
;run;
输出:
- 方法 I:删除所有具有空白/缺失值的变量的完整行
OPTIONS missing = ' '; data readin; SET outdata; IF missing(cats(of _all_)) THEN DELETE; run;
笔记:
- MISSING=系统选项用于将缺失值显示为单个空格,而不是默认句点 (.)选项 missing = ' ';
- CATS函数连接这些值。它还删除了前导和尾随空格。 cat(of _all_) – 连接所有变量
- missing(cats(of _all_)) – 识别所有变量中存在缺失值的所有行。
输出:
- 方法 II:仅删除任何变量具有缺失/空白值的行
data readin; SET outdata; IF cmiss(of _character_) OR nmiss(of _numeric_) > 0 THEN DELETE; run;
在这种情况下,我们使用 OR运算符来检查是否有任何变量有缺失值。它返回 4 个观察值。查看下面的输出 -