2016-02-09 22 views
0

在SAS中,從原始數據文件(csv)創建SAS數據集時,我們可以使用DATA步驟,使用infile關鍵字或PROC IMPORT步驟。 每一個的優點和缺點是什麼?使用DATA步驟與PROC IMPORT

+0

優點/缺點列表並不真正在這個網站的主題(「列表問題」)。儘管如此,我認爲一個更好定製的問題將會成爲話題。 – Joe

+0

特別是,如果您正在尋找某個特定的關於某個或另一個的具體內容,那麼可以在主題上詢問這個問題。現在它太寬泛,太多討論。一個好的問題應該來自具體的用例,或者至少是一個或多或少具體的用例;因此,一個關於潛在用例的詳細問題是適當的。 – Joe

+0

另請參閱[此元問題](http://meta.stackoverflow.com/questions/258308/asking-questions-about-advantages-disadvantages-on-so)以獲取更多詳細信息。 – Joe

回答

1

Proc Import根據讀取由選項控制的CSV中的行數來假定字符變量的長度和變量的類型。如果您在運行proc導入後在交互式sas中發出撤回命令,您將獲得proc導入生成的數據步驟代碼以執行實際工作。它會生成格式和信息聲明,可能會或可能不會完全符合您的要求。

我經常使用proc import作爲數據步驟代碼生成器,調用代碼,然後修改它以適合我想要的。

您還可以添加其他處理邏輯來擴展步驟的功能,而不僅僅是將源數據讀入數據集。創建新變量作爲CSV彈簧中一個或多個列的轉換。

0

我普遍認爲這是一個太寬泛的問題。這就是說:

PROC IMPORT比DATA STEP慢。這是因爲PROC IMPORT查看文件,然後寫入並執行DATA STEP。

數據步驟要求您知道每個變量的名稱,位置和屬性(類型,長度等)。

如果我需要讀取一次文件,我只使用PROC IMPORT。

如果我需要多次讀取文件,我不關心速度,文件格式可能會改變,那麼我使用PROC IMPORT。

如果我在速度很重要的生產系統中,並且如果格式更改,我想要一個ERROR,那麼我使用PROC IMPORT。但是我將它寫入的DATA STEP放到我的代碼中。

如果PROC IMPORT無法正確猜測我的列,我使用PROC IMPORT,修改它生成的DATA STEP,然後使用它。