本文介绍了如何在SAS中删除数据集中的空白观察的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从数据集中删除所有空白观察.我只知道如何去掉一个变量中的空白:

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中删除数据集中的空白观察的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-22 07:13