2017-08-02 28 views
-1

SASでは、列名、varの長さ、最大の長さを表示する出力(結果または実際のデータセット)を取得する方法を理解しようとしています(もちろん、その列名でobsごとに繰り返されます)。SAS:列名、最大長、およびその列の定義長を示すテーブルを出力するにはどうすればよいですか?

+1

これまでに何を試みましたか? SOはコード作成サービスではありませんので、問題を自分自身で解決し、問題の原因を説明してください。サンプルデータと期待される出力もまた、あなたの問題を説明するのに役立ちます。 – Reeza

+0

https://stackoverflow.com/help/how-to-ask – Reeza

+0

また、情報についてはSASHELP.VCOLUMNSテーブルを参照してください。 – Reeza

答えて

0

データセット内のEVERY変数の最大長を調べるには、おそらくデータを転置するか、コードを生成する必要があります。

各観測値に固有の識別子がある場合、最初にデータを転置して最大長を見つけることができます。

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; 

あなたは、そのSELECT文のMAX(LENGTH(var)) as var一連の式を生成するために、元のデータにPROCのコンテンツ情報を使用することができます。

関連する問題