如何在sas中连续计算变量?

时间:2013-11-01 14:17:32

标签: 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

有什么猜测如何执行此任务?

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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()来查找。