Sql 中间缺失值的数据

Sql 中间缺失值的数据,sql,sas,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

我在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。< /P> 我想用一个proc方法,但它显示了一个摘要。SQL也一样。此外,我还可以使用增量计数器

我想我会使用proc方法来总结所有变量,但如果你有更好的建议,我洗耳恭听

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;

如果您试图找出哪些变量缺少值,那么当然可以使用PROC MEANS

proc means noprint data=have;
*no var statement gets all numeric variables;
output out=varsmissing nmiss=;
run;
这将获得每个变量缺少的值的数量,然后您可以使用它执行任意数量的操作。您可能希望它采用垂直格式,在这种情况下,您可以使用ODS输出

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;

这给了你一个垂直数据集,它可能更有用。

中间缺失值是什么意思?你想找出哪些变量缺少值?嗨,乔,我想知道,哪些变量缺少值最多。缺少这些值,因为时间序列是以这种方式构建的。因此,我需要删除这些变量。听起来我的第二个建议很适合你。乔,谢谢。这颗小宝石刚刚救了我的命。我现在可以谈一些问题了。嗨,乔,我有个问题要问你,和这个话题无关。对你来说最好的SAS书籍是什么?我需要更多的训练,特别是数组和编程。乔,我得问你这个问题。这样做是否更好:proc意味着data=toto;ods输出汇总=缺失值;跑ods输出关闭;你为什么把ods输出摘要放在开头?我这样问是因为我已经创建了一个宏,并且我在开始时就放了ods输出摘要,就像你做的那样。但是,在运行时,我得到以下消息:输出“summary”未创建。怎么会?