SAS 统计某个数据集各个字段频数,并汇集到一个表中

Posted wdkshy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAS 统计某个数据集各个字段频数,并汇集到一个表中相关的知识,希望对你有一定的参考价值。

/*统计表的字段*/
PROC CONTENTS DATA=SASHELP.CLASS NOPRINT OUT=CA(KEEP=NAME);
    
RUN;

/*提取表的变量名*/
PROC SQL NOPRINT;
SELECT NAME INTO:A SEPARATED BY   FROM CA;
RUN;
QUIT;


%LET I=1;

/*计算各个变量的频数,并存放在一个数据集中*/

%MACRO M_A();

    PROC FREQ DATA=SASHELP.CLASS;
        %DO %UNTIL(%SCAN(&A.,&I, )=);

            %LET NI=%SCAN(&A,&I, );
            TABLES &NI/MISSING OUT=&NI(RENAME=(&NI=NAME)) NOPRINT;

            %LET i = %eval(&i.+1);

            %PUT "&I.=" &NI.;
        
        %END;
    RUN;

    %LET I=1;
    %DO %UNTIL(%SCAN(&A.,&I, )=);

        %LET NI=%SCAN(&A,&I, );
        
        DATA &NI.;
            LENGTH VAR $30. VAL $40.;
            SET &NI.;
            VAR="&NI.";
            VAL=CATS(NAME,‘‘);
            DROP NAME;
        RUN;
        PROC APPEND BASE=D DATA=&NI.;
        RUN;

        %LET i = %EVAL(&i.+1);

        %PUT "&I.=SSSSSSS" &NI.;

    %END;

    PROC PRINT DATA=D;
    RUN;

%MEND;

%M_A();

 

以上是关于SAS 统计某个数据集各个字段频数,并汇集到一个表中的主要内容,如果未能解决你的问题,请参考以下文章

SAS统计初学1-卡方检验

统计学中频数分布表怎么做

sas自定义标签可以包含多少字符

SAS学习6(freq过程tabulate过程univariate过程plot过程chart过程)

SAS学习6(freq过程tabulate过程univariate过程plot过程chart过程)

单表替换密码统计分析