首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动获取不缺少的行数。

自动获取不缺少的行数。
EN

Stack Overflow用户
提问于 2014-01-27 07:50:09
回答 2查看 218关注 0票数 0

我有很多具有不同列(变量)名称的表,它们唯一常见的是名为 date 的列,所以我有很多数据,每个表都有特定的日期。

要测试某些列是否缺少值,我必须为每个表编写sql查询,如下所示:

代码语言:javascript
运行
复制
proc sql;
  create table check as
    select Date, count(Date) as date_count, count(col_x) as col_x, count(col_y) as col_y, ..
    from certain_table
    group by Date;
quit;

因此,我必须手动为每个表编写计数(Xxx)作为yyy部件。

是否有一种方法可以编写某种通用查询,可以自动计算按一列分组的表中的每一列的不缺失行(在我的情况下是日期),并以类似于上面代码生成的形式显示它?

EN

回答 2

Stack Overflow用户

发布于 2014-01-27 10:45:42

我将沿着确定哪些列包含缺失数据的路线前进,因为这似乎是您主要关注的问题。我还假设您的变量是字符和数字的混合体,我的解决方案对两者都适用。PROC中有一个NLEVELS选项,它输出列中不同值的数量,任何缺失的值都分别显示。下面是示例代码,如果您想按日期对数据进行分组,那么您必须预置表并在PROC中放置一个by语句。

代码语言:javascript
运行
复制
data class;
set sashelp.class;
if _n_=1 then call missing(name,height); /* set a couple of variables to missing in row 1 */
run;

ods select nlevels; /* only calculate the nlevels stats */
ods output nlevels=want; /* output results to a dataset */
proc freq data=class nlevels;
run;
;
票数 4
EN

Stack Overflow用户

发布于 2014-01-27 19:19:20

PROC表可以很容易地为您做到这一点,就像一些统计过程一样。我这样做是为了_numeric_,它允许我使用var而不是class,这是更好的输出。如果您确实需要字符变量,您可以使用类来完成这一任务,只需删除那些无趣的行。

代码语言:javascript
运行
复制
proc tabulate data=sashelp.class out=want;
var _numeric_;
tables _numeric_,n nmiss;
run;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21375487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档