中间缺少值的数据

时间:2014-06-13 15:23:24

标签: sql sas

我在SAS中有一张表,有近5000个变量。

该表看起来像这样但有600个额外的观察结果。

 date    var1     var2     var3     var4
 1955M1  1        .        2        .
 1955M2  1        .        2        5
 1955M3  1        2        2        .
 1955M4  1        .        2        2
 1955M5  1        5        2        2
 1955M6  1        .        2        .
 1955M7  1        2        2        .
 1955M8  1        .        2        2
1955M10  1        .        2        2
1955M11  1        .        2        .

我试图弄明白,哪个变量就像var2,中间缺少值。

我正在考虑使用proc means,但它正在显示摘要。 SQL会是一样的。此外,我可以使用增量计数器。

我想我会使用proc means来获取所有变量的摘要,但如果你有更好的建议,我全心全意。

PS:我的解决方案看起来像这样

proc means data=have  noprint;
output out=want(drop=_:) n=;
run;

proc transpose data=want out=want (rename=(_name_=nomvar));
run;

proc sql;
select * from want where col1 lt 300;

1 个答案:

答案 0 :(得分:0)

如果您正在尝试查找哪些变量缺少值,您当然可以使用PROC MEANS。

proc means noprint data=have;
*no var statement gets all numeric variables;
output out=varsmissing nmiss=;
run;

这样可以获得每个变量缺失值的数量,然后你可以用它做任意数量的事情。您可能希望以垂直格式使用它,在这种情况下,您可以使用ODS OUTPUT。

ods output summary=want; *might want to filter, such as (where=(nmiss>0));
ods listing close; *or whatever your printed output destination is;
proc means data=have nmiss stackodsoutput; *the last is only 9.3+ but makes nicer looking output;
run;
ods output close;

这为您提供了一个可能更有用的垂直数据集。