官术网_书友最值得收藏!

3.5 讀取Flat數據文件

Flat file最常見的格式就是CSV和TXT文件。同樣,按照表3-1介紹的思路,對于純文本文件,我們仍然推薦用PROC IMPORT方式導入,當然也可以用INFILE語句+INPUT語句組合,進行更多個性化的讀入。

→3.5.1 讀入CSV文件

CSV文件的讀入同EXCEL文件類似,我們也推薦用PROC IMPORT,不過比EXCEL方便的是:CSV在讀入時SAS可以直接用GUESSINGROWS來指定通過前多少行確定變量類型、用DATAROW來指定數據從哪一行開始。

程序3-5 PROC IMPORT讀入CSV文件

    filename mycsv "D:\03 Writting\01 SAS編程演義\02 Data\Raw\class.csv";
    proc importout=tmp datafile=mycsv
                dbms=csv replace;
                getnames=yes;
                guessingrows=20;
                datarow=2;
    run;

CSV文件其全稱是逗號分隔值文件(Comma Separated Value,CSV),雖然我們常用MS EXCEL打開查看編輯其內容,用記事本打開,便見其本質內容就是用逗號把一個一個的變量值分開。如果我們不用逗號,改用空格或者制表符,那就是我們常見的TXT文本文件了。

→3.5.2 讀入TXT特殊字符分隔的文件

對于TXT文件,我們同樣先推薦用PROC IMPORT導入,不同的是,我們在設置DBMS時要留意:我們需要指定DBMS=DLM,并且增加DELIMITER語句指定分隔符。例如,如果分隔符是“#”,則delimiter='#';如果是空格或者制表符,則用二進制代碼表示空格('20'x)和制表符('09'x)。

程序3-6 PROC IMPORT導入制表符和空格分隔的文本

當然,除了PROC IMPORT外,我們也可以采用更為靈活的方式,那就是DATA步的INFILE+INPUT語句。其實,無論是CSV還是TXT,我們在用PROC IMPORT導入的時候,SAS實質上還是在用DATA步的INFILE+INPUT語句,圖3-2可以證明。在運行完上面的程序后,留意LOG就會發現這一點。這一點有一個巧妙的用途:如果我們用PROC IMPORT導入時,某些變量因格式、長度什么的不對而出現錯誤了,我們可以直接拷貝LOG里的DATA步程序,而后進行細微修改,用修改后的DATA步程序再導入文本數據文件,這樣不失為一個巧妙的讀入文本文件的方法。

圖3-2 PROC IMPORT導入文本實質是DATA步INFILE+INPUT語句

主站蜘蛛池模板: 璧山县| 响水县| 黄山市| 九寨沟县| 平阳县| 永泰县| 辽宁省| 桂东县| 周口市| 绥宁县| 苍山县| 嵊州市| 山西省| 鄂温| 巴塘县| 元谋县| 灵宝市| 漠河县| 夏河县| 田东县| 昌乐县| 襄汾县| 丰原市| 大渡口区| 隆化县| 昌都县| 泗阳县| 出国| 仙游县| 正阳县| 拜泉县| 上饶市| 蒙山县| 锡林浩特市| 类乌齐县| 张家口市| 宁陵县| 宣汉县| 岗巴县| 沙雅县| 苏尼特左旗|