The_Little_SAS_Book_學(xué)習(xí)筆記_第九章.docx_第1頁
The_Little_SAS_Book_學(xué)習(xí)筆記_第九章.docx_第2頁
The_Little_SAS_Book_學(xué)習(xí)筆記_第九章.docx_第3頁
The_Little_SAS_Book_學(xué)習(xí)筆記_第九章.docx_第4頁
The_Little_SAS_Book_學(xué)習(xí)筆記_第九章.docx_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第九章 導(dǎo)出數(shù)據(jù)9.1 導(dǎo)出數(shù)據(jù)的方法將數(shù)據(jù)導(dǎo)出到其他應(yīng)用程序 有三個(gè)基本方法將數(shù)據(jù)導(dǎo)出到其他應(yīng)用程序:delimited files或文本這樣其他軟件都可以讀取的文件。創(chuàng)建一個(gè)如html、rtf、或xml這樣其他軟件業(yè)可以讀的文件。用其他軟件的格式創(chuàng)建數(shù)據(jù)。l 不論操作環(huán)境是什么,幾乎都可以創(chuàng)建分隔文件(delimited files),且大部分軟件都是可以讀取的。數(shù)據(jù)步,可以讓你很好的控制文件的格式,但是步驟比較多。導(dǎo)出向?qū)В‥xport Wizard)和導(dǎo)出過程(EXPORT procedure),很好使用,但對結(jié)果的控制不是很好。ODS可以從任何輸出中創(chuàng)建逗號分隔的文件(CSV)。l 使用ODS,可以從任何輸出中創(chuàng)建HTML、RTF、和XML文件,大部分軟件都是可以讀取這些文件的。l 如果PC文件格式軟件中有SAS/ACCESS模塊,可以創(chuàng)建一些不同的文件類型,這些文件在PC程序中很常見。出向?qū)В‥xport Wizard)和導(dǎo)出過程(EXPORT procedure)都可以產(chǎn)生PC文件。通過使用這些程序本身來創(chuàng)建,避免了創(chuàng)建完還要導(dǎo)入。如果沒有SAS/ACCESS模塊,且使用window系統(tǒng),那么可以使用Dynamic Data Exchange(DDE)或 Open Database Connectivity(ODBC)來講數(shù)據(jù)從SAS移動到PC程序中,且不需要創(chuàng)建中介的文件。導(dǎo)出SAS數(shù)據(jù)集到其他的操作系統(tǒng)中 有三個(gè)有效的方法:交叉環(huán)境數(shù)據(jù)訪問(CEDA),XPORT引擎或CPORT過程,XML引擎,以及SAS/CONNECT模塊。l CEDA是迄今為止最簡單的,將SAS數(shù)據(jù)集移動到其他操作系統(tǒng)的方法。但CEDA不能被SAS version 6使用,也不能在OS/390或z/OS中使用。l XPORT引擎和 CPORT過程都創(chuàng)建了可以移動到其他操作系統(tǒng)的傳送文件,再將其轉(zhuǎn)回成SAS數(shù)據(jù)集。創(chuàng)建傳送文件會導(dǎo)致數(shù)據(jù)精度的損失。但對于SAS version 和OS/390或z/OS,由于不能使用CEDA,故可能需要這個(gè)方法。l 如果使用的是SAS 9.0或更高版本,那么你可以在LIBNAME語句中使用XML引擎,來創(chuàng)建XML文件。這個(gè)文件可以轉(zhuǎn)移到其他電腦中,并且可以使用XML引擎來轉(zhuǎn)回到SAS數(shù)據(jù)集。l SAS/CONNECT模塊,連同一些其他的功能,可以讓你將SAS數(shù)據(jù)集轉(zhuǎn)移到其他操作系統(tǒng)中,而不需要創(chuàng)建中間文件。SAS/CONNECT模塊也可以講SAS數(shù)據(jù)集從一個(gè)較早版本移到一個(gè)較高版本,且反之也可以。9.2 用導(dǎo)出向?qū)懳募?dǎo)出向?qū)且粋€(gè)圖形使用界面(GUI),如果你只需要一次性導(dǎo)出數(shù)據(jù),那么這個(gè)方法比proc export簡單。在文件菜單中選擇“導(dǎo)出數(shù)據(jù)”,在第一個(gè)窗口中,選擇要導(dǎo)出的library和menber名。如果要導(dǎo)出一個(gè)臨時(shí)SAS數(shù)據(jù)集,那么library就是work。Member就是SAS數(shù)據(jù)集的名字。第二個(gè)窗口中,選擇要創(chuàng)建的文件類型。這可以從standard data sources的下拉列表中選擇,或勾選User-defined formats旁邊的框框。下一個(gè)窗口中 ,選擇導(dǎo)出文件的路徑。如果要導(dǎo)出分割的文件,那么要在option中進(jìn)行設(shè)置。最后一個(gè)窗口中,用來儲存有導(dǎo)出向?qū)Мa(chǎn)生的proc export語句:9.3 用EXPORT Procedure寫分割的文件使用EXPORT Procedure的優(yōu)點(diǎn)于,它可以將代碼融合到現(xiàn)有的SAS程序中,每一次創(chuàng)建文件時(shí),不需要通過export Wizard。The EXPORT procedure 基本形式為:PROC EXPORT DATA=data-set OUTFILE=filename;Data-set是要導(dǎo)出的數(shù)據(jù)集,filename是路徑及名稱,如下的代碼告訴SAS讀取名為HOTELS的臨時(shí)SAS數(shù)據(jù)集,并寫入名為HOTELs.csv的逗號分隔的文件中,路徑為C盤下的MyRawData文件夾:PROC EXPORT DATA=hotels OUTFILE=c:MyRawDataHotels.csv;SAS根據(jù)文件的擴(kuò)展名,來決定創(chuàng)建哪一種文件。也可以通過在PROC EXPORT語句中增加DBMS=option來指定文件類型。下面的表格顯示了擴(kuò)展名和對應(yīng)的DBMS辨認(rèn)器的辨認(rèn):注意空格分割的文件,是沒有擴(kuò)展名的。因此必須使用DBMS=option。下面的代碼通過DBMS=option,告訴SAS創(chuàng)建一個(gè)空格分割的文件,名為Hotels.spc,替代選項(xiàng)告訴SAS替代同名文件。PROC EXPORT DATA=hotels OUTFILE=c:MyRawDataHotels.spcDBMS=DLM REPLACE;如果想創(chuàng)建一個(gè)有分隔符的文件,不是逗號、tab或者空格分隔的,就需要DELIMITER語句。DELIMITER語句不在乎使用什么擴(kuò)展名,也不在乎指定的哪種DBMS identifier,文件將會使用你在identifier中指定的分隔符。比如,下面的代碼產(chǎn)生文件,Hotels.txt,用&作為分隔符:PROC EXPORT DATA=hotels OUTFILE=c:MyRawDataHotels.txtDBMS=DLM REPLACE;DELIMITER=&;例子 有一份關(guān)于高爾夫課程的數(shù)據(jù),變量為課程名、洞口數(shù)、par、yardage和greens fees.下面的代碼使用infile和input語句讀取數(shù)據(jù)并放入名為GOLF的永久SAS數(shù)據(jù)集中,存于C盤的MySASLib路徑下。這個(gè)例子使用LIBNAME告訴SAS永久數(shù)據(jù)集儲存在哪里,但也可是使用直接指代:下面的代碼寫一個(gè)純文本、tab-delimited文件,可以用任何文本編輯器來讀?。河捎谳敵鑫募詔xt結(jié)尾,且沒有DELIMITER語句,SAS將寫入一個(gè)tab-delimited文件,如果運(yùn)行這段代碼,日志將出現(xiàn)如下:注意原始數(shù)據(jù)中只有六個(gè)觀測值,多出的一行是變量名。如果用文字編輯器讀取這個(gè)文件,那么將出現(xiàn)如下:如果想要改變格式,運(yùn)行proc export之前,在數(shù)據(jù)步中使用FORMAT語句。9.4 用EXPORT Procedure寫PC文件如果使用的是windows或unix系統(tǒng),且有SAS/ACCESS的PC文件格式軟件,那么就可以使用EXPORT procedure來創(chuàng)建PC文件類型。如果用的是Windows系統(tǒng),EXPORT procedure可以創(chuàng)建Microsoft Access,Microsoft Excel,dBase,和Lotus files。Unix系統(tǒng)則可以用SAS9.1或更高版本創(chuàng)建dBase files,也可以創(chuàng)建Microsoft Access和 Microsoft Excel files。Microsoft Excel,Lotus and dBase files PROC EXPORT創(chuàng)建Microsoft Excel,Lotus 和dBase的基本形式為:PROC EXPORT DATA=data-set OUTFILE=filename;Data-set是導(dǎo)出的數(shù)據(jù)集,filename是輸出文件的路徑。下面的語句告訴SAS讀取名為HOTELS的臨時(shí)SAS數(shù)據(jù)集,并寫入名為Hotels.xls的Microsoft Excel文件:PROC EXPORT DATA=hotels OUTFILE=c:MyRawDataHotels.xls;SAS通過擴(kuò)展名來決定創(chuàng)建哪一種文件??梢酝ㄟ^DBMS=option來指定文件類型。下面的表顯示了文件擴(kuò)展名和DBMS標(biāo)識符。下面的語句包括DBMS=option,告訴SAS創(chuàng)建一個(gè)名為hotels.xls的Microsoft Excel 5文件,REPLACE選項(xiàng)意味著替換同名文件。PROC EXPORT DATA=hotels OUTFILE=c:MyRawDataHotels.xlsDBMS=EXCEL5 REPLACE;默認(rèn)情況下,Microsoft Excel sheet的名字與SAS數(shù)據(jù)集一樣,通過SHEET=語句可以指定不同的名字(該語句對Microsoft Excel 4 or Microsoft Excel 5無效)。Sheet名中特殊的字符將轉(zhuǎn)化為下劃線,且$不允許放在sheet名字的后面。下面的代碼創(chuàng)建了一個(gè)名為Golf_Hotels的工作薄:SHEET=Golf Hotels;Microsoft Access files 創(chuàng)建Microsoft Access文件使用OUTTABLE=option,而不是OUTFILE=option,并且要增加DATABASE=語句?;拘问綖椋篜ROC EXPORT DATA=data-set OUTTABLE=filenameDBMS=identifier;DATABASE=filename;DATABASE語句指定了哪一個(gè)Microsoft Access database文件希望修改或創(chuàng)建,OUTTABLE選項(xiàng)指定那個(gè)database的表名。必須要指定DBMS選項(xiàng)來創(chuàng)建Microsoft Access table,下表顯示了DBMS的標(biāo)識符:例子 仍然是高爾夫課程的數(shù)據(jù):下面的代碼使用INFILE和INPUT語句讀取數(shù)據(jù),并將其放入名為GOLF的永久數(shù)據(jù)集中:如下代碼將golfSAS數(shù)據(jù)集寫入Microsoft Excel文件:Excel的結(jié)果為如下圖所示:9.5用數(shù)據(jù)步寫原始文件 數(shù)據(jù)步可以創(chuàng)建原始文件,在數(shù)據(jù)步中使用file語句和put語句,可以寫下任何一種形式的原始數(shù)據(jù)文件。雖然PROC EXPORT和Export Wizard在某種程度上更簡單,但選項(xiàng)有限。而數(shù)據(jù)步可以更靈活的創(chuàng)建。可以用讀取原始數(shù)據(jù)的同樣方式寫入原始數(shù)據(jù),只需幾步改變用file語句和put語句。也就是說infile和input語句是將原始數(shù)據(jù)文件導(dǎo)入SAS,而file和put語句是將原始數(shù)據(jù)導(dǎo)出。與input一樣,put語句可以用list,column或formatted風(fēng)格。但由于SAS已經(jīng)知道變量是否是數(shù)值或字符串,因此不需要在字符串變量后加$符號。如果使用list format風(fēng)格,SAS會自動在變量之間加空格,創(chuàng)建一個(gè)空格分隔的文件。要用其他分隔符,在file語句中使用list-style put語句和DSD和DLM=options:FILE file-specification DSD DLM=delimiter;如果使用column或formatted風(fēng)格的put語句,SAS將會把變量放在任何你指定的地方??梢杂胕nput語句中同樣的指示器,用n移動到第n列,用+n移動n列,用/移動到下一行,用#n滑動到第n行,則停留在當(dāng)前行,也可以通過引號來加入字符串。例子 仍然是高爾夫球課程的數(shù)據(jù),下面的代碼是讀取數(shù)據(jù)的:現(xiàn)在要將數(shù)據(jù)寫入原始原件,但只有三個(gè)變量,按新的變量順序排列,并且美元符號放入變量GreenFees后面。下面的代碼讀取數(shù)據(jù)并用FILE和PUT語句寫入原始文件:_NULL_是告訴SAS不要新建數(shù)據(jù)集,以節(jié)省電腦資源。SET語句告訴SAS讀取永久數(shù)據(jù)集GOLF,F(xiàn)ILE語句告訴SAS要創(chuàng)建的輸出變量的名字,PUT語句告訴SAS寫入的內(nèi)容和路徑。Put語句包含了兩個(gè)引用的字符串,“Golf Course”和“Par”,這兩個(gè)將插入原始文件中。Put語句使用列指示符告訴SAS變量的變量值放置在哪里。為GreenFees變量賦DOLLAR7.2格式。用put語句可以完全控制原始文件。運(yùn)行這段代碼,日志窗口將出現(xiàn)下面的信息:輸出結(jié)果為:9.6 用ODS寫分隔和HTML文件ODS是創(chuàng)造各種輸出格式的強(qiáng)有力的工具。在各種輸出格式中,ODS可以創(chuàng)建的有兩種,CSV和HTML,使用它來將數(shù)據(jù)從SAS中傳送到其他程序中,是很有用的方法。許多程序可以讀取CSV或HTML格式,而且任何操作系統(tǒng)都可以使用這種方法。由于所有的過程其輸出都經(jīng)過ODS,因此可以通過選擇正確的目的地來用ODS導(dǎo)出數(shù)據(jù),并用proc print來獲取數(shù)據(jù)列表。如果不想讓SAS打印缺失數(shù)據(jù),可以使用MISSING=系統(tǒng)選項(xiàng)。默認(rèn)下,PROC PRINT打印觀測序號,可以通過使用NOOBS讓其不打印。CSV files 從9.0開始,可以用ODS創(chuàng)建CSV文件。CSV文件用逗號將變量值分開,且變量值被括在雙引號之內(nèi)。雙引號允許變量值包含逗號。創(chuàng)建一個(gè)CSV文件來轉(zhuǎn)載數(shù)據(jù),用下面的語句:ODS CSV FILE=filename.csv;Your PROC PRINT statements go hereRUN;ODS CSV CLOSE;filename.csv是要創(chuàng)建的CSV文件,并且下面要為你的數(shù)據(jù)插入正確的proc print語句。如果想要在CSV文件中包含標(biāo)題和注腳,使用csvall,而不是csv。HTML files 使用下面語句為你的數(shù)據(jù)產(chǎn)生HTML文件,可以在ODS HTML語句中增加STYLE=option語句來選擇不同的風(fēng)格?;蛘撸绻幌胧褂萌魏物L(fēng)格,則使用CHTML輸出目的地來代替HTML。ODS HTML FILE=filename.html;Your PROC PRINT statements go hereRUN;ODS HTML CLOSE;例子 此例使用SAS永久數(shù)據(jù)集GOLF,僅包括在hawaii的gofl課程。下面的代碼使用ODS來創(chuàng)建CSV文件,golfinfo.csv:CSV文件如果用記事本打開,如下所示:如果使用excel打開,則如下所示:下面的代碼從golf數(shù)據(jù)創(chuàng)建一個(gè)HTML文件,golfinfo.html,并且在proc print語句中使用noobs選項(xiàng)來減少觀測之列:用excel打開:9.7 和其他類型電腦分享SAS數(shù)據(jù)集訪問SAS數(shù)據(jù)集時(shí)候,SAS會自動檢測數(shù)據(jù)以決定是否和與你使用的操作系統(tǒng)兼容。如果數(shù)據(jù)集處于不同的系統(tǒng)之中,SAS會自動使用交叉環(huán)境數(shù)據(jù)訪問(CEDA),以動態(tài)傳送數(shù)據(jù)至一種形式,這種形式下,SAS可以在你的系統(tǒng)中理解數(shù)據(jù)。有兩種CEDA不能使用的情況,分別為:OS/390或z/OS,和SAS 6.0及以前的版本。決定數(shù)據(jù)表現(xiàn) CEDA是透明的,以至于你不知道什么時(shí)候它在被使用。如果想知道什么時(shí)候CEDA被使用,可以用下面的語句:OPTIONS MSGLEVEL=I;則,無論什么時(shí)候SAS使用CEDA訪問數(shù)據(jù),日志窗口都會出現(xiàn)下面的類似信息:為外部主機(jī)創(chuàng)建SAS數(shù)據(jù)集 創(chuàng)立一個(gè)SAS數(shù)據(jù)集,方便其他電腦系統(tǒng)訪問,而又不需要浪費(fèi)電腦資源轉(zhuǎn)換格式,可以在libname語句中使用OUTREP=option,基本形式:LIBNAME librefpathOUTREP=data-representation;如果想要那個(gè)庫中所有數(shù)據(jù)集都有指定host representation,還可以:data

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論