-1

我的数据如下:

ID  date  shoesize shoetype

1   4/3/12  .  bball

2   .    12 running

3 1/2/12  8 .

4 . 9.5 bball

我想数“。”的数量。每一行都有,并用信息制作一个频率表。提前致谢

4

2 回答 2

2

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

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

然后对这个新变量做任何你想做的事情。

于 2013-07-31T20:31:17.190 回答
1

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

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

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

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

于 2013-08-01T04:31:18.257 回答