2017-08-02 54 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; 

你可以使用原始數據PROC內容的信息,生成在SELECT語句中的一系列MAX(LENGTH(var)) as var表達式。