如何选择数据集中的所有变量并设置为proc摘要?

时间:2014-03-17 21:36:21

标签: sas

假设我有一个数据集已满,我想选择所有变量并将它们放在proc summary语句的var语句中。是否有捷径可寻?如何在select语句中选择所有变量?

proc sql noprint; 
    select * into :all separated by " "
    from full;

    %put all = &all.;

    proc summary data=full print;
      *var &list of variables from dataset;
      class type;
      output out=work.summary;
    run; 

2 个答案:

答案 0 :(得分:2)

如有疑问,请在其他类似情况下尝试_NUMERIC_(或_CHARACTER__ALL_):

proc means data=sashelp.class;
var _numeric_;
run;

FWIW,您的方法是错误的,但有一种类似的方法可行。

proc sql;
select name into :namelist separated by ' '
from dictionary.columns
where libname='WORK' and memname='FULL' and upcase(type)='NUM';
quit;

进入字典表(类似于PROC CONTENTS输出数据集)并将变量名称拉入列表。

答案 1 :(得分:0)

我可能只是使用默认列表语法。从proc内容和列表中获取第一个和最后一个变量的顺序。例如......

proc contents data = sashelp.class position;

假设w是列出的第一个变量,n是最后一个,那么

proc summary data=full print;
      var w--n;
      class type;
      output out=work.summary;
    run; 

请注意,此类型的列表需要2个破折号。 如果您有顺序编号的变量,如x1 x2 x3 x4 x5等。 你会做的

var x1-x5;