2013-11-01 46 views
0

我有这种形式的表如何在sas中对一行中的变量进行计数?

id1|A| 
id1| |var1 
id1|B|var2 
id2|C| 

我想算检索具有所有变量的所有信息的数据:即

id1|B|var2 

执行这个任务,我想算每一行中的意见数量,并采取只具有完整的观察行:

id|name|age |cntrow 

id1| A | |2 
id1| |var1|2 
id1| B |var2|3 
id2| C | |2 

任何猜测如何执行此任务?

回答

0

如果这是数字,n函数将工作。由于数据不是,您可以使用CMISS找出丢失的数量:

data have; 
infile datalines dlm='|'; 
input 
id $ charvar1 $ charvar2 $ numvar; 
vars_missing = cmiss(of _all_)-1; *because vars_missing is also missing at this point!; 
put _all_; 
datalines; 
id1|A| |3 
id1| |var1|2 
id1|B|var2|. 
id2|C| |2 
;;;; 
run; 

然后从已知数量的变量中减去它。如果您不知道它,您可以创建_CHARACTER__NUMERIC_阵列,并使用dim()以供查找。

1

您可以使用CMISS功能。沿线的东西:

Data nomissing missing; 
    Set input_dataset; 
    if CMISS(of _ALL_)=0 then output nomissing; 
    if CMISS(of _ALL_)>0 then output missing; 
run; 
+0

有效的答案。谢谢 – DJJ

相关问题