问题描述
我想从数据集中删除所有空白观察.我只知道如何去掉一个变量中的空白:
I want to delete ALL blank observations from a data set.I only know how to get rid of blanks from one variable:
data a;
set data(where=(var1 ne .)) ;
run;
在这里我设置了一个新的数据集,没有来自 var1 的空白.但是,当我想去掉整个数据集中的所有空白时,该怎么做呢?
Here I set a new data set without the blanks from var1. But how to do it, when I want to get rid of ALL the blanks in the whole data set?
提前感谢您的回答.
推荐答案
如果您试图删除所有变量都丢失的行,这很容易:
If you are attempting to get rid of rows where ALL variables are missing, it's quite easy:
/* Create an example with some or all columns missing */
data have;
set sashelp.class;
if _N_ in (2,5,8,13) then do;
call missing(of _numeric_);
end;
if _N_ in (5,6,8,12) then do;
call missing(of _character_);
end;
run;
/* This is the answer */
data want;
set have;
if compress(cats(of _all_),'.')=' ' then delete;
run;
您也可以预先使用 OPTIONS MISSING=' ';
来代替压缩.
Instead of the compress you could also use OPTIONS MISSING=' ';
beforehand.
如果您想删除所有缺失值的所有行,那么您可以使用 NMISS/CMISS 函数.
If you want to remove ALL Rows with ANY missing values, then you can use NMISS/CMISS functions.
data want;
set have;
if nmiss(of _numeric_) > 0 then delete;
run;
或
data want;
set have;
if nmiss(of _numeric_) + cmiss(of _character_) > 0 then delete;
run;
对于所有字符+数字变量.
for all char+numeric variables.
这篇关于如何在SAS中删除数据集中的空白观察的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!