每次观察都缺少多少个值

时间:2013-07-31 20:26:13

标签: sas

我的数据如下:

ID  date  shoesize shoetype

1   4/3/12  .  bball

2   .    12 running

3 1/2/12  8 .

4 . 9.5 bball

我想计算'。'的数量。每行都有一个频率表和信息。提前致谢

2 个答案:

答案 0 :(得分:2)

您可以使用NMISS和CMISS函数确定行中缺失值的数量(NMISS表示数字,CMISS表示字符)。如果您只列出了一些变量,则应该使用该列表;如果没有,你需要处理number_missing本身将丢失的事实(那里的-1)。

data want;
set have;
number_missing=nmiss(of _numeric_) + cmiss(of _character_)-1;
run;

然后用新变量做任何你想做的事。

答案 1 :(得分:1)

如果您想评估字符变量,则NMISS不起作用。它将参数列表中的字符变量转换为numeric,这会导致在遇到字符变量的每个实例中都缺少计数。 CMISS不会将字符变量值转换为缺失值,因此您可以得到正确的答案。

显然,您可以选择不包含字符变量作为参数,但我假设您希望根据您提供的示例计算字符变量中的缺失值。如果是这种情况,以下应该做你想要的。

DATA WANT3;
SET HAVE;
NUMBER_MISSING = 0;
NUMBER_MISSING=CMISS(OF _ALL_);
RUN;

您必须为NUMBER_MISSING分配一个值,否则新变量也会被评估为缺失。