我的数据如下:
ID date shoesize shoetype
1 4/3/12 . bball
2 . 12 running
3 1/2/12 8 .
4 . 9.5 bball
我想数“。”的数量。每一行都有,并用信息制作一个频率表。提前致谢
我的数据如下:
ID date shoesize shoetype
1 4/3/12 . bball
2 . 12 running
3 1/2/12 8 .
4 . 9.5 bball
我想数“。”的数量。每一行都有,并用信息制作一个频率表。提前致谢
您可以使用 NMISS 和 CMISS 函数(NMISS 表示数字,CMISS 表示字符)确定一行中缺失值的数量。如果您只有一些变量的列表,则应该使用该列表;如果没有,您需要处理 number_missing 本身将丢失的事实(那里的 -1)。
data want;
set have;
number_missing=nmiss(of _numeric_) + cmiss(of _character_)-1;
run;
然后对这个新变量做任何你想做的事情。
如果您希望评估字符变量,NMISS 不起作用。它将参数列表中的字符变量转换为数字,这会导致在遇到字符变量的每个实例中丢失计数。CMISS 不会将字符变量值转换为缺失值,因此您会得到正确答案。
显然,您可以选择不将字符变量作为参数包含在内,但是我假设您也希望根据您提供的样本计算字符变量中的缺失值。如果是这种情况,以下应该做你想做的。
DATA WANT3;
SET HAVE;
NUMBER_MISSING = 0;
NUMBER_MISSING=CMISS(OF _ALL_);
RUN;
您必须为 NUMBER_MISSING 分配一个值,否则新变量也会被评估为缺失。