Sql 中间缺失值的数据
我在SAS中有一个几乎有5000个变量的表 这张表看起来像这样,但有600个额外的观察值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
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”未创建。怎么会?