2011-12-02 2528 views
2

我需要更改現有數據集中的變量長度。我可以改變格式和信息,但不是長度。我收到一個錯誤。文件說這是可能的,但沒有例子。更改SAS數據集中的變量長度

這是我的問題。我的數據源可能會更改,因此我不想預先定義導入列。我想做一個通用的導入,然後查找某些列並調整長度。

我已經嘗試過PROC SQL和DATA步驟。它看起來像這樣做的唯一方法是重新創建數據集或列。我不想這樣做。

感謝, 甄子丹

回答

5

如果你把你的長度語句SET語句之前,在數據的步驟,你可以改變一個變量的長度。顯然,如果數據長度超過新長度,將會截斷。

但是,使用DATA步驟來更改長度也會重新創建數據集,所以我很困惑於您的問題的這一部分。

+1

一個年輕球員陷阱的長度 - 這不會自動改變一個變量的'format'以匹配新的長度,這實際上可能最終「隱藏」新數據集中長字符串的分配。所以它可能是值得同時改變長度和格式,所以一切都相當整齊。 – thelatemail

1

改變一個datastep一個可變長度的唯一方法是源之前定義它(SET)數據集被讀入。

相反,你可以在PROC SQL中使用ALTER語句。 SAS support alter statement

1

設置數據集後,變量的長度保持不變。添加長度語句設置數據集之前,如果你需要更改列

data a; 
    length a, b, c $200 ; 
    set b ; 
run ;