我的数据如下:
ID date shoesize shoetype
1 4/3/12 . bball
2 . 12 running
3 1/2/12 8 .
4 . 9.5 bball
我想计算'。'的数量。每行都有一个频率表和信息。提前致谢
答案 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分配一个值,否则新变量也会被评估为缺失。