SAS:如何输出显示该列的列名,最大长度和定义长度的表?

时间:2017-08-02 18:55:01

标签: sas proc-sql datastep

在SAS中,我试图弄清楚如何获得输出(结果或实际数据集),向我显示列名,变长和最大长度(当然,对于每列,该列重复名称)。

1 个答案:

答案 0 :(得分:0)

要查找数据集中每个变量的最大长度,您可能需要转置数据或生成代码。

如果每个观察都有唯一的标识符,那么您可以先转置数据,然后找到最大长度。

proc transpose data=have out=tall ;
  by rowid ;
  var _character_;
run;
proc sql ;
  create table want as 
    select _name_,max(length(col1)) as max_length
    from tall 
    group by 1
  ;
quit;

或者生成代码以在单个观察中找到最大长度然后转置它。因此,如果你的变量是GENDER和RACE,你可以运行它。

proc sql ;
  create table wide as
    select max(length(GENDER)) as GENDER
         , max(length(RACE)) as RACE
    from have
  ;
quit;
proc transpose data=wide out=want;
run;

您可以使用原始数据的PROC CONTENTS信息在该select语句中生成一系列MAX(LENGTH(var)) as var表达式。