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学习6(freq过程tabulate过程univariate过程plot过程chart过程)