如何在proc freq中的变量列表中使用所有变量名

时间:2014-06-27 14:17:53

标签: sas frequency

我试图在proc freq中的变量列表(varlistc)中使用所有变量名。但是,PROC FREQ仅为varlistc中的最后一个变量名提供输出。我该如何解决这个问题?

proc sql noprint;
select name 
into :varlistc separated by ' '
from data2c;
quit;

proc freq data=&data1;
table &varlistc*site;
run;

2 个答案:

答案 0 :(得分:4)

仅供参考,PROC FREQ还允许更清晰的语法:

第一个括号中的列表中的每个变量都在asterix之后交叉应用于变量(或另一个括号中的变量列表)。

proc sql noprint;
select name
into :varlistc separated by ' '
from sashelp.class;
quit;


proc freq data=&data1;
table ( &varlistc ) * site;
run;

也可以是例如:

proc freq data=&data1;
table ( &varlistc ) * (site1 site2);
run;

答案 1 :(得分:1)

在宏变量中添加更多内容以使其正常工作。

proc sql noprint;
select cats(name,'*site')
into :varlistc separated by ' '
from data2c;
quit;

proc freq data=&data1;
table &varlistc;
run;

这将生成屏幕上的所有表格。如果要将它们输出到数据集,如果添加除最后一个表之外不会输出的/out;你有两个选择。

  • 使用ods output将所有输出转换为一个或多个数据集
  • /out=<whatever>
  • 中加入select into