版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
深入解析SAS數(shù)據(jù)處理、分析優(yōu)化與商業(yè)應(yīng)用目錄\h第一篇SAS編程和數(shù)據(jù)處理\h第1章BaseSAS基礎(chǔ)\h1.1SAS系統(tǒng)簡介\h1.2啟動SAS軟件\h1.3SAS窗口環(huán)境\h1.4SAS文件和邏輯庫\h1.5一個簡單的SAS程序\h1.6SASStudio\h1.7本章小結(jié)\h第2章讀取外部數(shù)據(jù)到SAS數(shù)據(jù)集\h2.1SAS編程基本概念\h2.2通過DATA步讀取數(shù)據(jù)\h2.3通過IMPORT過程讀取外部文件數(shù)據(jù)\h2.4訪問關(guān)系型數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)\h2.5SAS程序錯誤及處理\h2.6本章小結(jié)\h第3章對單個數(shù)據(jù)集的處理\h3.1選取部分變量\h3.2操作數(shù)據(jù)集的觀測\h3.3創(chuàng)建新變量\h3.4循環(huán)和數(shù)組\h3.5SAS常用函數(shù)\h3.6將數(shù)據(jù)集寫出到外部文件\h3.7本章小結(jié)\h第4章對多個數(shù)據(jù)集的處理\h4.1數(shù)據(jù)集的縱向串接\h4.2數(shù)據(jù)集的橫向合并\h4.3數(shù)據(jù)集的更新\h4.4數(shù)據(jù)集的更改\h4.5數(shù)據(jù)集處理的一點補充\h4.6本章小結(jié)\h第5章數(shù)據(jù)匯總與展現(xiàn)\h5.1通過PRINT過程制作報表\h5.2通過TABULATE過程制作匯總報表\h5.3通過GPLOT過程制作圖形\h5.4通過GCHART過程制作圖形\h5.5ODS輸出傳送系統(tǒng)\h5.6本章小結(jié)\h第6章SASSQL語言\h6.1SQL語言概述\h6.2使用SQL檢索數(shù)據(jù)\h6.3使用SQL對表進行橫向合并\h6.4使用SQL對表進行縱向合并\h6.5使用SQL管理表\h6.6本章小結(jié)\h第7章SAS宏語言\h7.1SAS宏語言概述\h7.2宏變量\h7.3宏函數(shù)\h7.4宏\h7.5宏語言與其他SAS語言\h7.6宏編程\h7.7本章小結(jié)\h第8章開發(fā)多語言支持的SAS程序\h8.1多語言支持的基本概念\h8.2NLS相關(guān)的SAS選項\h8.3NL格式和NL輸入格式\h8.4字符串和字符處理函數(shù)\h8.5文本字符串外部化\h8.6本章小結(jié)\h第二篇SAS統(tǒng)計分析和時間序列預(yù)測\h第9章描述性統(tǒng)計分析\h9.1基本概念\h9.2描述性統(tǒng)計量\h9.3MEANS過程的補充\h9.4本章小結(jié)\h第10章參數(shù)估計與假設(shè)檢驗\h10.1參數(shù)估計\h10.2假設(shè)檢驗\h10.3非參數(shù)假設(shè)檢驗\h10.4分布擬合假設(shè)檢驗\h10.5本章小結(jié)\h第11章方差分析\h11.1方差分析的基本原理\h11.2單因素試驗的方差分析\h11.3顯著因素下的水平間差異檢驗\h11.4雙因素試驗的方差分析\h11.5本章小結(jié)\h第12章主成分分析與因子分析\h12.1主成分分析概述\h12.2使用SAS實現(xiàn)主成分分析\h12.3因子分析概述\h12.4使用SAS實現(xiàn)因子分析\h12.5本章小結(jié)\h第13章聚類分析\h13.1聚類分析的概述\h13.2劃分法與層次法\h13.3本章小結(jié)\h第14章判別分析\h14.1判別分析概述\h14.2判別分析在SAS中的實現(xiàn)\h14.3本章小結(jié)\h第15章回歸分析\h15.1變量關(guān)系探索\h15.2線性回歸\h15.3自變量間的共線性診斷\h15.4本章小結(jié)\h第16章LOGISTIC回歸分析\h16.1基本原理\h16.2運用LOGISTIC過程擬合模型\h16.3LOGISTIC過程的其他語句\h16.4建立模型\h16.5本章小結(jié)\h第17章時間序列分析\h17.1時間序列基本概念\h17.2平穩(wěn)時間序列分析\h17.3趨勢時間序列分析\h17.4季節(jié)時間序列模型\h17.5本章小結(jié)\h第18章SAS數(shù)據(jù)挖掘的一般流程\h18.1SAS數(shù)據(jù)挖掘概述\h18.2確定業(yè)務(wù)問題和數(shù)據(jù)準(zhǔn)備\h18.3數(shù)據(jù)抽樣、探索與加工\h18.4數(shù)據(jù)建模\h18.5本章小結(jié)\h第三篇SAS優(yōu)化建模\h第19章運籌學(xué)概述\h19.1運籌學(xué)發(fā)展簡介\h19.2優(yōu)化模型的基本概念\h19.3優(yōu)化模型的分類\h19.4優(yōu)化建模步驟\h19.5SAS/OR簡介\h19.6一個簡單的OPTMODEL程序\h19.7本章小結(jié)\h第20章線性規(guī)劃\h20.1數(shù)學(xué)模型\h20.2單純形法\h20.3對偶理論和靈敏性分析\h20.4內(nèi)點法\h20.5本章小結(jié)\h第21章運用PROCOPTMODEL建立線性規(guī)劃模型\h21.1基本概念\h21.2基本結(jié)構(gòu)\h21.3建立模型\h21.4讀取SAS數(shù)據(jù)集\h21.5創(chuàng)建SAS數(shù)據(jù)集\h21.6本章小結(jié)\h第22章PROCOPTMODEL程序設(shè)計\h22.1PROCOPTMODEL中的流程控制方法與集合運算\h22.2模型的更新\h22.3網(wǎng)絡(luò)流模型\h22.4本章小結(jié)\h第23章整數(shù)線性規(guī)劃和混合整數(shù)線性規(guī)劃\h23.1整數(shù)線性規(guī)劃和混合整數(shù)線性規(guī)劃概述\h23.2使用PROCOPTMODEL求解混合整數(shù)線性規(guī)劃\h23.3使用0-1變量建模\h23.4本章小結(jié)\h第24章優(yōu)化建模實例\h24.1集裝箱問題\h24.2運輸排程問題\h24.3本章小結(jié)\h第四篇SAS智能平臺架構(gòu)體系\h第25章SAS智能平臺及行業(yè)解決方案\h25.1SAS智能平臺\h25.2SAS商業(yè)智能\h25.3SAS數(shù)據(jù)管理和集成\h25.4SAS商業(yè)分析\h25.5SAS高性能分析\h25.6本章小結(jié)\h第26章SAS應(yīng)用的架構(gòu)規(guī)劃\h26.1SAS應(yīng)用的架構(gòu)規(guī)劃\h26.2SAS應(yīng)用的I/O系統(tǒng)規(guī)劃\h26.3本章小結(jié)\h第27章SAS智能平臺安全管理\h27.1身份標(biāo)識\h27.2認(rèn)證\h27.3授權(quán)\h27.4加密\h27.5安全性審計\h27.6本章小結(jié)\h第28章SAS智能平臺的高可用性\h28.1高可用性相關(guān)概念\h28.2SAS高可用性方法概述\h28.3SAS元數(shù)據(jù)服務(wù)器\h28.4SAS計算層\h28.5SAS中間層\h28.6數(shù)據(jù)層\h28.7本章小結(jié)注:原文檔電子版(非掃描),需要的請下載本文檔后留言謝謝。第一篇SAS編程和數(shù)據(jù)處理第1章BaseSAS基礎(chǔ)第2章讀取外部數(shù)據(jù)到SAS數(shù)據(jù)集第3章對單個數(shù)據(jù)集的處理第4章對多個數(shù)據(jù)集的處理第5章數(shù)據(jù)匯總與展現(xiàn)第6章SASSQL語言第7章SAS宏語言第8章開發(fā)多語言支持的SAS程序第1章BaseSAS基礎(chǔ)本章將從SAS系統(tǒng)開始,介紹BaseSAS的組成部分,并以Windows環(huán)境為例介紹SAS窗口環(huán)境、SAS邏輯庫、數(shù)據(jù)集、目錄(Catalog)等SAS中常用的概念。在了解了這些基礎(chǔ)知識之后,會引導(dǎo)讀者使用以上的知識編寫一段簡單代碼,提交執(zhí)行,并查看日志及運行結(jié)果。最后將用簡短的篇幅簡單介紹SAS最新推出但將會承擔(dān)重要角色的SASStudio的基本功能。需要注意的是,本書中描述的內(nèi)容會包括Windows和UNIX(和Linux)操作系統(tǒng),如果在Windows和UNIX環(huán)境下的操作或命令有所不同,將會專門說明。本書內(nèi)容未專門考慮Mainframe,因為其操作使用模式相差很多,而且讀者會較少接觸和使用Mainframe環(huán)境,但書中對SAS軟件和產(chǎn)品的描述、編程概念和程序語言以及給出的代碼在Mainframe環(huán)境下同樣適用。關(guān)于SAS的版本,本書是基于寫作時發(fā)布的最新版SAS9.4來展開的,除非特別說明,書中內(nèi)容也同樣適用于較早的版本SAS9.3和SAS9.2。本章對BaseSAS窗口環(huán)境進行了著重介紹,目的在于讓讀者學(xué)會如何使用SAS窗口環(huán)境開發(fā)、運行SAS代碼,并查看結(jié)果和檢查代碼運行日志。但是書中不會介紹每個菜單、子菜單、工具欄以及其他在BaseSAS軟件中出現(xiàn)的元素和功能,因為讀者在實際學(xué)習(xí)和工作中可以很方便地通過SAS軟件提供的幫助文件進行了解。1.1SAS系統(tǒng)簡介SAS提供了一套集成的可擴展的解決方案和使用靈活、功能強大的SAS編程語言,用于執(zhí)行如下任務(wù):數(shù)據(jù)輸入和獲取、數(shù)據(jù)轉(zhuǎn)換處理和管理、報表繪制和圖形、統(tǒng)計和數(shù)學(xué)分析、商業(yè)規(guī)劃、預(yù)測、運籌優(yōu)化,以及應(yīng)用開發(fā)等。SAS可以在多種操作系統(tǒng)下運行,包括Windows、UNIX、Linux以及Mainframe等。同時,SAS程序代碼具有很好的移植性,在一種環(huán)境下開發(fā)的SAS代碼可以在其他操作系統(tǒng)下運行。SAS系統(tǒng)的核心BaseSAS由以下部分組成?!ATA步:用于處理和管理數(shù)據(jù)?!AS過程(Procedure):用于分析、處理和制作報表?!た蓴U展和定制SAS軟件程序的宏語言(MacroFacility):可以減少程序文本,使SAS程序編寫得更有效且易于維護,便于編寫更為復(fù)雜的程序邏輯?!ATA步調(diào)試器:當(dāng)提交的DATA步運行出錯或產(chǎn)生的輸出結(jié)果與預(yù)期不一致時,可以借助它來跟蹤DATA步的執(zhí)行情況,從而幫助發(fā)現(xiàn)程序邏輯中的錯誤?!ぽ敵鼋桓断到y(tǒng)(OutputDeliverySystem,ODS):該系統(tǒng)會產(chǎn)生各種易于訪問的格式輸出,例如,HTML文件、傳統(tǒng)的列表輸出、PostScript文件、RTF文件和輸出數(shù)據(jù)集等。·SAS窗口環(huán)境:它是一個開發(fā)和測試SAS程序的交互式圖形用戶界面,本節(jié)后面會有更進一步的介紹。這其中,前面3個是SAS語言的主要元素,本篇后面的章節(jié)會專門介紹。BaseSAS軟件提供數(shù)據(jù)處理過程和基礎(chǔ)的統(tǒng)計過程FREQ、MEAN、CORR及UNIVARIATE等,可以與其他的SAS產(chǎn)品一起使用,從而實現(xiàn)更強大的數(shù)據(jù)讀取、分析、優(yōu)化、展示等功能。下面列出了部分常用的SAS產(chǎn)品,用于實現(xiàn)數(shù)據(jù)讀取、統(tǒng)計分析、優(yōu)化和信息展示等功能。(1)SAS/ACCESS接口提供與各種第三方數(shù)據(jù)源進行交互的功能。例如各種關(guān)系型數(shù)據(jù)庫,諸如Oracle、DB2、Teradata等;ERP系統(tǒng)諸如SAPR/3、PeopleSoft等;同樣對于Hadoop等也有專門的ACCESS接口。對于不同的數(shù)據(jù)源,ACCESS接口需要單獨的軟件使用許可。SAS與第三方的數(shù)據(jù)源進行交互時,將直接調(diào)用該數(shù)據(jù)庫或應(yīng)用廠商提供的客戶端對數(shù)據(jù)進行訪問,從而保證了與數(shù)據(jù)訪問的效率。此外,SAS/ACCESS還提供接口訪問MicrosoftAccess數(shù)據(jù)庫文件和Excel工作簿文件中的數(shù)據(jù)。(2)SAS/GRAPHSAS/GRAPH是SAS系統(tǒng)的數(shù)據(jù)可視化和展現(xiàn)(圖形)組件,用于數(shù)據(jù)和信息展現(xiàn),并且它可通過二維和三維圖形(包括圖表、散點圖和地圖),可視化地展現(xiàn)數(shù)據(jù)值之間的關(guān)系。還可創(chuàng)建文本幻燈片、生成各種圖形輸出,并可提供實用程序和管理輸出。(3)SAS/STATSAS/STAT軟件提供了全面的統(tǒng)計分析方法,共有超過75個統(tǒng)計分析過程,包括T檢驗、方差分析(ANOVA過程)、聚類分析(CLUSTER過程、VARCLUSTER和FASTCLUS過程)、因子分析(FACTOR過程)、回歸分析(REG過程)、邏輯斯蒂(LOGISTIC過程)等。SAS/STAT軟件還包括效能和樣品容量分析(PSS)應(yīng)用程序。該軟件不斷被更新,以反映新的研究成果和方法。(4)SAS/ETS提供用于經(jīng)濟計量分析、時間序列分析和預(yù)測(ESM過程、ARIMA過程和UCM過程等)、系統(tǒng)建模與仿真(MODEL過程)、離散選擇分析、定性有限因變量模型分析、時間序列數(shù)據(jù)的季節(jié)性調(diào)整、財務(wù)分析和報告、訪問經(jīng)濟和金融數(shù)據(jù)庫及時間序列數(shù)據(jù)的管理。除了以上過程外,SAS/ETS軟件還包括對經(jīng)濟和金融數(shù)據(jù)庫以及互動環(huán)境的無縫訪問,從而進行時間序列預(yù)測及投資分析。(5)SAS/ORSAS/OR專注于運籌與優(yōu)化。SAS/OR提供的OPTMODEL建模語言用于構(gòu)建、解決和維護最優(yōu)化模型的建模環(huán)境,通過OPTMODEL過程的各種求解器或單個過程,例如OPTLP、OPTMILP、OPTMILP過程,解決線性規(guī)劃、混合整數(shù)規(guī)劃、非線性規(guī)劃等問題。以BaseSAS軟件和以上產(chǎn)品與技術(shù)作為基礎(chǔ),構(gòu)建在SAS智能平臺(SASIntelligencePlatform)上的SAS許多商業(yè)解決方案,可以幫助各類商業(yè)客戶和其他組織機構(gòu)解決諸多業(yè)務(wù)領(lǐng)域的特定問題,例如客戶智能、風(fēng)險管理、供應(yīng)鏈、零售等。關(guān)于SAS商業(yè)解決方案的內(nèi)容,在本書的第四篇會有相應(yīng)的介紹。1.2啟動SAS軟件SAS有多種運行模式:SAS窗口環(huán)境模式、非交互式模式、批處理模式及交互式行模式,下面會一一介紹。除了上面提到的4種模式外,SAS還可運行在對象服務(wù)器模式里,SAS元數(shù)據(jù)服務(wù)器、工作區(qū)服務(wù)器、存儲過程服務(wù)器和OLAP服務(wù)器都是屬于這種模式。關(guān)于這些服務(wù)器,在本書第四篇會進行討論。1.2.1SAS窗口環(huán)境模式SAS窗口環(huán)境是SAS提供的一種交互式圖形界面,是在Windows環(huán)境下使用SAS編輯或提交SAS程序語句最方便也是最常用的模式。在SAS窗口環(huán)境中,用戶可以通過程序編輯器編輯并提交SAS語句,程序語句的執(zhí)行狀態(tài)、執(zhí)行時間等日志信息及put語句的輸出會顯示在日志窗口,同時還會提供在線幫助等。本章下一節(jié)會使用Windows環(huán)境下的窗口環(huán)境作為示例,詳細介紹SAS窗口環(huán)境的各個窗口功能及其使用。在Windows環(huán)境下啟動SAS窗口環(huán)境和啟動其他Windows應(yīng)用程序一樣有多種方式,可通過“開始”菜單里的快捷方式、命令行等方式進行。在安裝SAS軟件時,SAS軟件安裝程序會提示選擇要安裝的SAS語言版本。如果當(dāng)前操作環(huán)境下安裝了多種語言的SAS,英文的SAS可以通過“開始”“程序”SASSAS9.4(English)啟動。啟動所有語言(包括英文)的SAS軟件時,其快捷方式位于“開始”“程序”SASAdditionalLanguages中。例如,啟動Windows操作環(huán)境下簡體中文SAS軟件的快捷方式為:“開始”“程序”SASAdditionalLanguagesSAS9.4(Chinese(Simplified)),如圖1.1所示。圖1.1啟動簡體中文SAS窗口環(huán)境此外,還可以使用命令行方式啟動SAS窗口環(huán)境。在下面給出的Windows和UNIX操作環(huán)境下的命令后,都可以指定其他系統(tǒng)選項來定制要啟動的SAS會話。例如,選項-NODATE表示在該SAS會話中產(chǎn)生的輸出頁面里不顯示日期,選項-CONFIG指定SAS配置文件,以在啟動時加載配置文件中更多的系統(tǒng)選項等。·Windows環(huán)境C:\>"C:\ProgramFiles\SASHome\SASFoundation\9.4\sas.exe"
·UNIX環(huán)境#/opt/SASHome/SASFoundation/9.4/sas-dms
UNIX環(huán)境下的命令行若不加選項-DMS,則會進入SAS的顯示管理系統(tǒng)。當(dāng)使用Windows機器通過Telnet遠程登錄SAS軟件所在的UNIX主機時,如果需要使用SAS窗口環(huán)境,可以在該Windows機器上啟動X-Windows軟件,例如Exceed、XMing、Cygwin等,并設(shè)置當(dāng)前Telnet會話的DISPLAY環(huán)境變量到該Windows機器上。這樣,所啟動的SAS窗口環(huán)境會重定向到該Windows操作系統(tǒng)。當(dāng)啟動SAS的顯示管理系統(tǒng)時,在該Windows環(huán)境下會彈出類似的SAS窗口環(huán)境。在初次使用X-Windows窗口時會有些不習(xí)慣,有些操作與Windows環(huán)境下的SAS窗口稍有差異,但大部分都很類似。在UNIX環(huán)境下,更多使用的是非交互模式或批處理模式,或者其他的工具。例如,可使用Windows環(huán)境下的客戶端程序SASEnterpriseGuide將SAS代碼提交到UNIX服務(wù)器上。1.2.2非交互模式很多情況下,SAS程序保存在外部操作系統(tǒng)文件中,這時可以在不啟動SAS窗口環(huán)境的情況下非交互式地提交該文件。使用非交互模式執(zhí)行保存在外部文件中的SAS程序語句時,SAS會打開該文件,執(zhí)行該文件中的程序,并將日志和輸出根據(jù)操作環(huán)境寫入指定文件中。當(dāng)該文件中的SAS程序執(zhí)行完成時,SAS自動退出。下面是非交互模式下使用SAS執(zhí)行外部文件中的SAS程序語句示例?!ぴ赪indows環(huán)境下的示例如下:C:\>"C:\ProgramFiles\SASHome\SASFoundation\9.4\sas.exe"-sysin
C:\sas\code\test.sas–logC:\sas\logs\test.log-print
C:\sas\lst/test.lst
·在UNIX環(huán)境下的示例如下:#/opt/SASHome/SASFoundation/9.4/sas–sysin/opt/sas/code/test.sas–log/opt/sas
/logs/test.log-print/opt/sas/lst/test.lst
選項“-sysin”指定SAS程序語句所在的文件。當(dāng)要執(zhí)行的SAS程序語句文件緊接著sas命令時,該選項可省略?!?log”指定輸出日志文件,“-print”指定執(zhí)行輸出文件。1.2.3批處理模式在支持批處理或后臺執(zhí)行的操作環(huán)境下,SAS還可運行在批處理模式中。用戶可以將上面的一個或多個非交互模式中的命令寫入批處理腳本,并保存在批處理.bat(Windows環(huán)境下)或.sh(UNIX環(huán)境)文件中,然后提交該批處理文件執(zhí)行。當(dāng)以批處理模式提交SAS作業(yè)時,會生成兩個文件,它們分別包含該作業(yè)執(zhí)行的SAS日志和輸出。下面給出UNIX下的.sh文件內(nèi)容,該批處理文件提交了兩個SAS程序執(zhí)行test.sas和test2.sas。Windows環(huán)境下類似,但必須使用相應(yīng)的腳本語法。#!/bin/sh
cd/opt/sas
/opt/SASHome/SASFoundation/9.4/sas/opt/sas/code/test.sas-log/opt/sas
/logs/test.log-print/opt/sas/lst/test.lst&
wait
Sleep15
/opt/SASHome/SASFoundation/9.4/sas/opt/sas/code/test2.sas-log/opt/sas
/logs/test2.log-print/opt/sas/lst/test2.lst&
wait
當(dāng)使用調(diào)度軟件或操作系統(tǒng)調(diào)度命令對SAS作業(yè)進行預(yù)定執(zhí)行時,通常使用該模式。這樣可以讓執(zhí)行時間較長的SAS作業(yè)在晚間或其他預(yù)定時間執(zhí)行,或根據(jù)業(yè)務(wù)需要定期自動執(zhí)行。下面給出了在Windows和UNIX環(huán)境下使用操作系統(tǒng)計劃或預(yù)定功能批處理執(zhí)行的示例。在SAS商業(yè)智能解決方案中這種模式也經(jīng)常使用,SAS智能平臺也提供了與第三方調(diào)度軟件和操作系統(tǒng)調(diào)度服務(wù)的集成。1.Windows環(huán)境使用Windows提供的任務(wù)計劃程序,依次選擇“開始”“所有程序”“附件”“系統(tǒng)工具”“任務(wù)計劃程序”,并指定任務(wù)要執(zhí)行的操作腳本為上面提到的批處理文件。如圖1.2所示為在Windows“任務(wù)計劃程序”中預(yù)定為在每天00:30:00執(zhí)行的SAS作業(yè),所設(shè)定操作的啟動程序為包含SAS命令的.bat文件。2.UNIX環(huán)境使用crontab命令預(yù)定上面提到的批處理文件。下面的crontab文件內(nèi)容給出了預(yù)定在每天凌晨00:30:00執(zhí)行批處理文件sasjob.sh中的作業(yè)。3000***/bin/ksh/opt/sas/scheduler/sasjob.sh>/opt/sas/scheduler/sasjob.log2>&1
圖1.2Windows環(huán)境下的“任務(wù)計劃程序”窗口1.2.4交互式行模式該模式在UNIX操作系統(tǒng)中可用,是一種較少使用的模式。但作為SAS支持的啟動模式,在這里也簡單地介紹一下。在交互行模式下,順序地輸入程序語句,所輸入的DATA步或PROC步當(dāng)遇到RUN、QUIT、分號、另一個DATA步或PROC步,或者ENDSAS語句時會提交執(zhí)行。同時隨著DATA步或PROC步的提交,這些程序語句的日志和輸出(如果有輸出的)也會立即顯示。可使用NODMS或NODMSEXP系統(tǒng)選項啟動交互式行命令模式的SAS會話。使用NODMS選項的命令示例如下:#/opt/SASHome/SASFoundation/9.4/sas–nodms
后面還可以接其他系統(tǒng)選項或使用-CONFIG選項指定SAS配置文件。按EOF鍵(Ctrl+D組合鍵)或提交ENDSAS語句將結(jié)束交互式行命令模式的SAS會話。示例如下:5?endsas;
1.2.5配置文件和AUTOEXEC文件使用上述任何一種模式啟動SAS時,都可以通過定義配置文件和AUTOEXEC文件來定制SAS會話。在這兩個文件中可以指定系統(tǒng)選項和任何時候啟動SAS會話時自動執(zhí)行的SAS語句。SAS系統(tǒng)選項控制SAS會話的許多方面,包括輸出目的地、程序執(zhí)行效率及SAS文件和邏輯庫的屬性等。SAS配置文件的名稱為sasv9.cfg,AUTOEXEC文件的名稱為auoexec.sas,這些文件通常都位于SAS的安裝根目錄下。在多語言安裝環(huán)境中,SAS根目錄下的nls目錄中還包括各種語言適用的SAS配置文件所在目錄,例如en是英文、zh是簡體中文、zt是繁體中文。啟動SAS時如果不指定配置文件,在Windows操作環(huán)境下,SAS會去查找SAS安裝根目錄下的sasv9.cfg文件。通過Windows“開始”菜單啟動各種語言的SAS軟件時,SAS會自動調(diào)用對應(yīng)語言的配置文件。而在UNIX操作環(huán)境中,SAS啟動時所使用的配置文件是在啟動SAS的文件中指定的。有時,也會需要定制SAS啟動時的配置文件。一個比較實際的例子就是,在很多商業(yè)項目中,不希望SAS使用其默認(rèn)的臨時邏輯庫(邏輯庫的知識會在后面介紹)WORK,而是希望將臨時邏輯庫WORK建立在一個高速存儲系統(tǒng)中,以提高SAS對某些常用操作的效率,這時就可以在配置文件中指定臨時WORK的物理位置。在Windows環(huán)境下使用定制的配置文件sasv9_custom.cfg的示例如下。在該示例中,假定該文件位于目錄C:\ProgramFiles\SASHome\SASFoundation\9.4下(在UNIX環(huán)境下類似)。C:\>"C:\ProgramFiles\SASHome\SASFoundation\9.4\sas.exe"-config
"C:\ProgramFiles\SASHome\SASFoundation\9.4\sasv9_custom.cfg"
系統(tǒng)選項AUTOEXEC用于指定AUTOEXEC文件。AUTOEXEC文件包含啟動SAS或其他SAS進程時自動執(zhí)行的SAS語句,例如該文件可包含一些定義在SAS會話中的經(jīng)常使用的SAS邏輯庫的LIBNAME語句。SAS啟動時,如果沒有指定AUTOEXEC或NOAUTOEXEC選項,SAS會在當(dāng)前目錄、用戶目錄和SAS安裝根目錄下查找AUTOEXEC文件。可以在啟動SAS的命令行里指定AUTOEXEC選項,還可以通過SASV9_OPTIONS環(huán)境變量將該選項放入配置文件里。在Windows環(huán)境下通過命令行指定autoexec文件autoexec_custom.sas的示例如下。在該示例中,假定該文件位于目錄C:\ProgramFiles\SASHome\SASFoundation\9.4下(在UNIX環(huán)境下類似)。C:\>"C:\ProgramFiles\SASHome\SASFoundation\9.4\sas.exe"-AUTOEXEC
"C:\ProgramFiles\SASHome\SASFoundation\9.4\autoexec_custom.sas"
1.3SAS窗口環(huán)境SAS窗口環(huán)境是一個開發(fā)、調(diào)試和運行SAS程序的交互式圖形用戶界面。通過SAS窗口環(huán)境,用戶可以交互式地編輯和執(zhí)行SAS代碼、顯示SAS日志、查看SAS過程的輸出以及在線幫助,同時還可以通過圖形界面操作數(shù)據(jù)和改變SAS系統(tǒng)設(shè)置。SAS窗口環(huán)境通常在Windows系統(tǒng)下使用,所以本書后面的章節(jié)都將以Windows環(huán)境下的SAS窗口環(huán)境進行說明。SAS軟件啟動后的界面包括菜單、命令框、工具欄、窗口、窗口條以及狀態(tài)欄,同時還支持浮動菜單、Windows環(huán)境快捷鍵(比如粘貼快捷鍵Ctrl+C及剪貼板功能),以及BaseSAS軟件本身提供的快捷鍵(比如,提交代碼執(zhí)行“F3”)。SAS菜單包括在當(dāng)前上下文環(huán)境下可選擇的選項列表,當(dāng)正在使用的窗口發(fā)生變化時,菜單項會隨之發(fā)生變化。例如,如果當(dāng)前窗口是“資源管理器”,那么菜單視圖會顯示在“資源管理器”窗口可用的視圖選項。如果“程序編輯器”是當(dāng)前窗口,那么菜單視圖會顯示在“程序編輯器”窗口可用的視圖選項?!肮ぞ邫凇眲t顯示為窗口按鈕或圖標(biāo)。當(dāng)單擊“工具欄”里的工具項時,會產(chǎn)生對應(yīng)的功能或動作。例如,單擊“工具欄”里打印機的圖標(biāo)會開始打印過程。同樣工具欄中的可選工具項也和當(dāng)前的活動窗口相關(guān)。命令框位于工具欄左側(cè)??梢栽诿羁蜉斎朊钚?,例如打開SAS窗口和獲取幫助信息。下面來介紹SAS窗口環(huán)境的6個主要窗口:“程序編輯器”、“日志”、“輸出”、“結(jié)果”、“SAS資源管理器”和“編輯器”。第一次啟動時,默認(rèn)打開的窗口為“程序編輯器”、“日志”、“輸出”和“SAS資源管理器”窗口,“輸出”窗口隱藏在其他窗口后面。所打開的窗口和窗口布局與SAS所在的操作環(huán)境相關(guān),例如,在Windows環(huán)境下,“增強型編輯器”會代替“程序編輯器”。如圖1.3所示為Windows環(huán)境下BaseSAS軟件的窗口環(huán)境,其中“結(jié)果”窗口和“SAS資源管理器”共用窗口,可通過窗口下端的選項卡進行切換。提交SAS程序執(zhí)行完成后,默認(rèn)的HTML輸出會展示在“結(jié)果”窗口中。圖1.3Windows環(huán)境下的SAS窗口環(huán)境在任一時間,將只有一個窗口處于激活狀態(tài),該窗口稱為當(dāng)前窗口或活動窗口,可以通過單擊“窗口條”的窗口標(biāo)簽激活對應(yīng)窗口。在命令欄輸入相應(yīng)命令并按回車鍵,或在菜單視圖的子菜單中也可以打開并激活對應(yīng)的窗口。1.3.1SAS資源管理器“SAS資源管理器”(Explorer)窗口用于管理該窗口環(huán)境中的文件,包括查看SAS文件列表、創(chuàng)建新的SAS文件,查看、添加或刪除邏輯庫,創(chuàng)建外部文件的快捷方式,移動、復(fù)制和刪除文件,打開相關(guān)的窗口(比如新建邏輯庫窗口)等。該窗口最常用的功能是管理邏輯庫及邏輯庫中的SAS文件,相關(guān)內(nèi)容將在1.4節(jié)介紹?!癝AS資源管理器”以樹狀結(jié)構(gòu)管理當(dāng)前SAS環(huán)境中的文件,最上層顯示的圖標(biāo)為“邏輯庫”、“文件快捷方式”、“收藏夾”和“計算機”,如圖1.3所示??梢酝ㄟ^雙擊每個圖標(biāo)進入其下層的內(nèi)容或打開一個文件。如果當(dāng)前不在最上層,可以通過菜單“視圖”向上一級,或工具欄上的工具項,返回至上一級。還可通過菜單“視圖”顯示樹狀結(jié)構(gòu)打開兩級窗口?!癝AS資源管理器”窗口可通過在命令框中輸入EXPOLORE并按回車鍵來打開,或者選擇菜單“視圖”“SAS資源管理器”打開。1.3.2程序編輯器“程序編輯器”(ProgramEditor)窗口用于輸入、編輯、提交和保存SAS程序。該窗口還可通過在命令框輸入PROGRAM或PGM并按回車鍵來打開,或者選擇菜單“視圖”“程序編輯器”打開。默認(rèn)設(shè)置下,在“程序編輯器”窗口中,代碼提交后就會被清除,可在命令框中輸入recall重新顯示。可通過修改如下設(shè)置來取消清除代碼:在當(dāng)“程序編輯器”窗口為活動窗口時,選擇菜單“工具”“選項”“程序編輯器”打開的“程序編輯器選項”對話框的“編輯”選項卡,取消勾選“提交時清除文本”選項。此外,在該對話框中還可以修改其他設(shè)置。在Windows環(huán)境下,默認(rèn)打開的“程序編輯器”窗口為“增強型編輯器”?!霸鰪娦途庉嬈鳌本哂懈迂S富的功能,可折疊和展開代碼段,還可以通過設(shè)置使其在窗口左側(cè)邊緣顯示行號??赏ㄟ^在命令框輸入wnextedit或wpgm并按回車鍵來打開或切換“增強型編輯器”,或者選擇菜單“視圖”“增強型編輯器”打開。在編輯器中輸入的SAS程序代碼可保存到文件系統(tǒng)的文件中。1.3.3日志“日志”(Log)窗口可查看當(dāng)前SAS會話和SAS程序的消息。如果提交的程序產(chǎn)生意外結(jié)果,日志消息會提示錯誤信息,可以幫助找出SAS程序或設(shè)置的錯誤。如果SAS程序中有PUT語句,那么該輸出默認(rèn)會寫到SAS日志中。在命令框輸入LOG并按回車鍵,或選擇菜單“視圖”“日志”,可打開“日志”窗口。日志同樣也可保存到文件系統(tǒng)中,以便于以后查看。作為SAS開發(fā)或使用人員,要養(yǎng)成每次代碼提交執(zhí)行完成后首先檢查SAS日志的習(xí)慣。1.3.4結(jié)果通過“結(jié)果”(Results)窗口可查看在該窗口環(huán)境提交的SAS代碼的輸出列表。在SAS9.4中,默認(rèn)輸出為HTML格式?!敖Y(jié)果”窗口以樹形結(jié)構(gòu)列出SAS程序代碼執(zhí)行后產(chǎn)生的輸出。提交SAS代碼后,HTML內(nèi)容顯示在“結(jié)果瀏覽器”窗口,文件名稱展示在“結(jié)果”窗口中。可以查看、保存或打印單個結(jié)果文件。在命令欄輸入ODSRESULTS并按回車鍵,或者選擇菜單“視圖”“結(jié)果”,可打開“結(jié)果”窗口。1.3.5輸出可通過“輸出”(Output)窗口查看SAS程序的列表(LISTING)輸出。默認(rèn)情況下,“輸出”窗口位于其他窗口后面。當(dāng)SAS程序產(chǎn)生了列表輸出時,“輸出”窗口會自動移動到顯示前面??稍诿顧谳斎隣UTPUT、OUT、LISTING或LST并按回車鍵來打開“輸出”窗口,或者選擇菜單“視圖”“輸出”打開。從SAS9.3開始,SAS的默認(rèn)輸出從列表輸出變成了HTML??梢酝ㄟ^ODS語句打開列表輸出,產(chǎn)生列表輸出的同時也會生成HTML,不再需要列表輸出時可再使用相應(yīng)的ODS語句關(guān)閉該類型輸出。還可使用菜單“工具”“選項”“參數(shù)選擇”對話框的“結(jié)果”選項卡,選擇輸出類型和設(shè)置系統(tǒng)參數(shù),參數(shù)選擇對話框的默認(rèn)設(shè)置如圖1.4所示。勾選“創(chuàng)建列表”復(fù)選框會打開SAS軟件的列表輸出,還可選擇HTML的樣式,默認(rèn)為HTMLBlue。圖1.4結(jié)果參數(shù)設(shè)置1.4SAS文件和邏輯庫在熟悉了SAS窗口環(huán)境后,接下來了解一下SAS文件和SAS管理文件的方式。SAS文件是指由SAS創(chuàng)建、維護和管理,并且SAS知道其結(jié)構(gòu)的文件,例如SAS數(shù)據(jù)集、目錄(Catalog)等。通常這些文件也表現(xiàn)為操作環(huán)境中的文件,操作環(huán)境也會對它們進行管理。所有的SAS文件都存在于SAS邏輯庫中。SAS邏輯庫用于組織、查找和管理SAS文件。在SAS中,通過該文件所在邏輯庫及文件名來使用SAS文件。SAS數(shù)據(jù)集由SAS創(chuàng)建和管理,是SAS存儲和處理數(shù)據(jù)的主要方式。根據(jù)其文件是否包含數(shù)據(jù)值分為SAS數(shù)據(jù)文件和SAS視圖。SAS數(shù)據(jù)文件和SAS視圖可以簡單理解為與我們經(jīng)常使用的數(shù)據(jù)庫管理系統(tǒng)中的表和視圖。關(guān)于SAS邏輯庫和數(shù)據(jù)集將在第2章進行更詳細的講解。SAS目錄(Catalog)是一種特殊的SAS文件,以目錄項的形式存儲多種不同類型信息。一個SAS目錄可包含多種類型的目錄項,這些目錄項包含系統(tǒng)信息(例如功能鍵定義)和應(yīng)用程序信息(例如窗口定義、幫助窗口、格式(Format)、讀入格式(Informat)、宏(Macro)或圖形輸出)。下面通過“SAS資源管理器”窗口瀏覽SAS邏輯庫及SAS文件。啟動SAS窗口環(huán)境,在“SAS資源管理器”窗口雙擊“邏輯庫”sashelp。如圖1.5所示的界面給出了當(dāng)前環(huán)境下SAS系統(tǒng)中的邏輯庫:Maps、Mapsfgk、Mapssas、Sashelp、Sasuser和Work。邏輯庫Sashelp中的SAS文件如圖1.6所示,圖標(biāo)為數(shù)據(jù)集,圖標(biāo)為SAS目錄。SAS目錄還可打開顯示更小的單元目錄項。圖1.5SAS邏輯庫圖1.6SAS數(shù)據(jù)集和目錄SAS除了可以處理SAS文件外,還可以處理外部文件和數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)文件。SAS處理的外部文件指由操作系統(tǒng)管理和維護的數(shù)據(jù)或文本文件。外部文件通常用于存儲SAS需要處理的原始數(shù)據(jù)、SAS程序語句和過程運行結(jié)果(HTML,PDF格式)等,SAS有時也會將一些結(jié)果寫入外部文件。同時,SAS還可以通過特定的SAS/ACCESS接口軟件從其他廠商的軟件系統(tǒng)(例如數(shù)據(jù)庫管理系統(tǒng)(DBMS))文件中讀取和寫入數(shù)據(jù)。通過SAS/ACCESS接口軟件建立到DBMS的SAS邏輯庫后,SAS軟件可以像訪問SAS數(shù)據(jù)集一樣訪問DBMS中的表。1.5一個簡單的SAS程序在了解了SAS窗口環(huán)境并簡單了解了SAS邏輯庫、數(shù)據(jù)集這些基礎(chǔ)概念后,就可以在SAS窗口環(huán)境編輯一個簡單的SAS程序,提交運行并查看結(jié)果了。SAS程序由DATA步和過程步組成。DATA步由關(guān)鍵字DATA開始,過程步由關(guān)鍵字PROC開始。當(dāng)然SAS程序還可以包括宏語言,這個會在本篇后面的章節(jié)中專門介紹。啟動SAS窗口環(huán)境,在“程序編輯器”窗口輸入下面的代碼。libnamesaslibbase'c:\sas\data';
datasaslib.Inventory;
inputProduct_ID$InstockPrice;
datalines;
P001R12125.00
P003T3440.00
P301M23500.00
PC02M12100.00
;
procprintdata=saslib.inventory;
run;
代碼前面的部分之前已經(jīng)介紹過。LIBNAME語句定義物理路徑在c:\sas\data的SAS邏輯庫saslib。DATA步創(chuàng)建存儲在邏輯庫saslib下的SAS數(shù)據(jù)集Invertory,其中包含3個變量(列),分別為Product_ID、Instock和Price。在DATA步中SAS會讀取緊接著DATALINES語句并以分號結(jié)束的4行輸入數(shù)據(jù),每行數(shù)據(jù)按順序賦值給前面3個變量。PRINT過程會在結(jié)果查看器中打印DATA步創(chuàng)建的數(shù)據(jù)集Inventory中的數(shù)值。在輸入代碼后,保證該“程序編輯器”窗口為活動窗口,然后選擇菜單“文件”“保存”,單擊“工具欄”的工具項或按快捷鍵Ctrl+S保存所輸入的SAS程序語句為“測試程序”。當(dāng)前的窗口環(huán)境如圖1.7所示。這時要保證c:\sas\data文件夾存在,如果沒有,在對應(yīng)的目錄創(chuàng)建一個,否則在“日志”窗口會提示錯誤及錯誤信息。選擇菜單“運行”“提交”,或單擊“工具欄”中的工具項、按快捷鍵F3提交代碼。默認(rèn)情況下代碼提交執(zhí)行后,包含運行結(jié)果的文件HTML會產(chǎn)生,并自動顯示為當(dāng)前活動窗口,而主窗口左側(cè)則會顯示結(jié)果列表,如圖1.8所示。在圖1.8中,數(shù)據(jù)集Inventory的觀測值和變量以表的形式展現(xiàn)在了HTML格式的“結(jié)果查看器”中。其中,“SAS系統(tǒng)”字樣是SAS系統(tǒng)默認(rèn)標(biāo)題??梢栽赑RINT過程之前使用TITLE語句指定輸出標(biāo)題或在PRINT過程中指定標(biāo)題,通常我們會指定有意義的文字,比如“倉庫庫存”。指定的標(biāo)題在整個SAS會話期間一直有效,如果要使用其他輸出標(biāo)題或恢復(fù)默認(rèn)標(biāo)題,可以再次使用TITLE語句指定。此外,還可以指定結(jié)果的多級標(biāo)題和腳注,這里不贅述。圖1.7編輯SAS程序代碼圖1.8SAS程序運行結(jié)果可以通過“結(jié)果”窗口的條目在“結(jié)果查看器”的HTML文件中導(dǎo)航。在圖1.8所示的“結(jié)果”窗口展開“Print:SAS系統(tǒng)”,并單擊HTML條目,該條目對應(yīng)的結(jié)果會自動展示在“結(jié)果查看器”的當(dāng)前位置。在代碼運行過程中,運行日志會顯示在“日志”窗口。單擊窗口條的“日志-(無標(biāo)題)”可顯示日志信息,如圖1.9所示。日志中給出了語句執(zhí)行結(jié)果、DATA步中生成數(shù)據(jù)集的觀測數(shù)(行)和變量數(shù)(列),以及PROC步讀取的觀測數(shù),還有運行所有DATA步和PROC步所花費的實際時間和CPU時間?!叭罩尽贝翱谶€可顯示程序中的PUT語句輸出,這個在本示例中沒有涉及。圖1.9SAS代碼運行日志信息注意要養(yǎng)成提交代碼運行后首先查看“日志”窗口信息的良好習(xí)慣,檢查日志中是否有錯誤或警告信息。很多時候,特別是當(dāng)提交代碼量較大時,即使前面的DATA步或PROC步運行失敗,后續(xù)代碼語句仍然會繼續(xù)運行,但是可能會導(dǎo)致不正確的結(jié)果。所以必須檢查日志中是否有需要注意的錯誤或警告信息。接下來看看“輸出”窗口?!拜敵觥贝翱谡故維AS會話期間SAS語句的列表輸出。SAS窗口環(huán)境默認(rèn)不產(chǎn)生列表輸出。嘗試在上述代碼的基礎(chǔ)上稍作修改:改變輸出標(biāo)題和產(chǎn)生列表輸出,并在PRINT過程后關(guān)閉列表輸出。修改后的代碼如下:libnamesaslibbase'c:\sas\data';
datasaslib.Inventory;
inputProduct_ID$InstockPrice;
datalines;
P001R12125.00
P003T3440.00
P301M23500.00
PC02M12100.00
;
odslisting;
title'倉庫庫存';
procprintdata=saslib.inventory;
run;
odslistingclose;
提交運行后,在默認(rèn)打開的“結(jié)果查看器”中,HTML文件在包含本次代碼輸出的同時,還包含了上次提交代碼產(chǎn)生的輸出。在“結(jié)果”和“結(jié)果查看器”窗口都可以看到第二次運行結(jié)果的標(biāo)題為我們在程序代碼里指定的“倉庫庫存”。展開結(jié)果窗口的葉子節(jié)點,還可以看到第二次提交的代碼產(chǎn)生了兩類輸出:HTML輸出和列表輸出。單擊最后一個條目或單擊窗口條的“輸出-(無標(biāo)題)”打開所產(chǎn)生的列表輸出,可以看到數(shù)據(jù)集數(shù)據(jù)也輸出到了輸出窗口,如圖1.10右下窗口所示。圖1.10定制標(biāo)題和列表輸出到這里,已經(jīng)了解如何在SAS窗口環(huán)境中編輯一個簡單的SAS程序、提交SAS程序并檢查SAS程序的運行日志、查看結(jié)果和輸出。下面來看看基于SAS9.4發(fā)布的另一可以交互方式提交SAS程序語句的Web應(yīng)用SASStudio。1.6SASStudioSASStudio是基于HTML5客戶端/服務(wù)器結(jié)構(gòu)的Web應(yīng)用。通過SASStudio,用戶能夠以使用與SAS窗口環(huán)境類似的方式提交SAS程序語句,運行并獲取結(jié)果,同時它還提供交互方式指導(dǎo)用戶完成分析過程。用戶通過SASStudio編寫的代碼或圖形界面產(chǎn)生的分析過程會提交到本地或遠程的SAS軟件上執(zhí)行,結(jié)果返回SASStudio客戶端。這種特性會使SASStudio承擔(dān)SAS的PaaS(PlatformasaService,平臺即服務(wù))中重要角色,SASStudio也會集成到SAS云基礎(chǔ)設(shè)施中。該產(chǎn)品有著豐富的操作界面,這里簡單了解一下。SASStudio3.1的窗口如圖1.11所示,其中包含以下3個部分:·窗口頂部,包含在SASStudio中開發(fā)的應(yīng)用程序名稱和應(yīng)用程序按鈕。應(yīng)用程序名稱如圖1.11中的“程序1.sas”、“分布分析1”和“直方圖1”?!ご翱诘淖髠?cè)是具有多個可折疊條目的導(dǎo)航面板。導(dǎo)航面板提供的條目包含“搜索”、“文件夾”、“任務(wù)”、“代碼段”、“邏輯庫”和“文件快捷方式”?!び覀?cè)窗口(工作區(qū))包括主要的選項卡,可以顯示SAS表,文本文件(例如,SAS程序文件)、任務(wù)等,顯示哪一個取決于當(dāng)前執(zhí)行的操作。圖1.11SASStudio開發(fā)SAS程序通過這些窗口,用戶可搜索文件夾、文件、SAS邏輯庫、SAS表、表的列,還可以查看用戶可用的文件夾和文件、代碼段、SAS邏輯庫及邏輯庫中的表、文件快捷方式等,并且可使用“任務(wù)”窗口提供的那些預(yù)先定義的任務(wù),以圖形界面操作交互方式實現(xiàn)多種分析過程。如圖1.12所示是邏輯庫sashelp中的shoes數(shù)據(jù)集的列Sales生成直方圖的例子。選擇“任務(wù)”“圖形”“直方圖”,在中間子窗口選擇數(shù)據(jù)源和分析變量,最右側(cè)子窗口會顯示自動生成的代碼。該代碼可保存為代碼段或直接提交到SAS服務(wù)器執(zhí)行生成直方圖。圖1.12SASStudio生成直方圖1.7本章小結(jié)學(xué)習(xí)了本章內(nèi)容后,相信讀者對SAS軟件、SAS在Windows和UNIX環(huán)境下的各種啟動方式,以及對SAS編程IDE環(huán)境(即SAS窗口環(huán)境和SASStudio)已經(jīng)有了一些初步的了解,這會為后面的學(xué)習(xí)打下基礎(chǔ),可方便讀者更加深入地學(xué)習(xí)SAS軟件,并熟練使用SAS窗口環(huán)境完成數(shù)據(jù)處理和分析任務(wù)等。第2章讀取外部數(shù)據(jù)到SAS數(shù)據(jù)集SAS提供豐富的數(shù)據(jù)處理和分析方法來解決各種商業(yè)問題,但在使用這些方法之前,往往需要首先將各種形式的數(shù)據(jù)轉(zhuǎn)換成SAS數(shù)據(jù)集。如圖2.1所示是在SAS中從原始數(shù)據(jù)到最后生成有價值信息的過程示意圖??梢钥闯觯谶@個過程中,首要工作是將需要分析的原始數(shù)據(jù)轉(zhuǎn)換成SAS數(shù)據(jù)集,然后才是運用各種PROC步對數(shù)據(jù)集里的數(shù)據(jù)進行處理和分析,最后將分析結(jié)果以適當(dāng)?shù)男问秸宫F(xiàn)出來。圖2.1數(shù)據(jù)分析處理過程本章在介紹SAS編程過程中經(jīng)常使用的SAS邏輯庫、SAS數(shù)據(jù)集、系統(tǒng)選項以及SAS程序結(jié)構(gòu)等基本概念之后,將會重點講解如何開發(fā)SAS程序讀取外部數(shù)據(jù)源中的原始數(shù)據(jù),創(chuàng)建SAS數(shù)據(jù)集。最后簡單介紹在SAS程序開發(fā)中常見的幾種錯誤現(xiàn)象及其處理方法。2.1SAS編程基本概念在SAS系統(tǒng)中,SAS程序是用來獲取外部數(shù)據(jù)、處理和管理數(shù)據(jù),并對其進行分析預(yù)測和優(yōu)化,從而生成信息報告的重要工具。在學(xué)習(xí)開發(fā)SAS程序之前,首先需要理解兩個基本概念:SAS數(shù)據(jù)集和邏輯庫,包括它們的命名、引用、類別等;然后得了解SAS中會經(jīng)常使用的系統(tǒng)選項,這些系統(tǒng)選項讓SAS的分析處理功能既靈活又強大。2.1.1SAS邏輯庫SAS邏輯庫是一個或多個SAS文件的集合,用于組織、查找和管理SAS文件。SAS邏輯庫管理的SAS文件包括SAS數(shù)據(jù)集、SAS目錄、已編譯的SAS程序,以及多維數(shù)據(jù)庫文件等。在Windows和UNIX環(huán)境中,SAS邏輯庫通常是包含在同一個文件夾或目錄下的一組SAS文件,其他文件也可以存儲在該文件夾或目錄下,但只有具有SAS文件擴展名的那些文件會被認(rèn)為是該SAS邏輯庫的一部分。在其他操作系統(tǒng)下,SAS邏輯庫有不同的實現(xiàn)方式,但通常都對應(yīng)于當(dāng)前操作系統(tǒng)用來訪問和存儲文件的組織級別。例如在z/OS(OS/390)操作系統(tǒng)下,SAS邏輯庫是只能存儲SAS文件的特殊格式化了的主機數(shù)據(jù)集。盡管實現(xiàn)方式不一樣,但在SAS支持的各種操作系統(tǒng)下,SAS邏輯庫的使用方式是相同的。還有一種SAS邏輯庫,叫作元數(shù)據(jù)邊界邏輯庫(metadata-boundlibrary),是綁定在由元數(shù)據(jù)提供安全訪問控制的對應(yīng)表對象上的物理邏輯庫。元數(shù)據(jù)邊界邏輯庫里的每個物理表都有指向特定元數(shù)據(jù)對象的信息,同時還創(chuàng)建了物理表和元數(shù)據(jù)對象之間的安全性綁定。該綁定保證了用戶在訪問該物理表時,SAS強制執(zhí)行元數(shù)據(jù)層權(quán)限要求,從而避免從操作系統(tǒng)直接訪問該物理表導(dǎo)致的安全問題。這種SAS邏輯庫在SAS智能分析平臺中可用,在本章不作介紹。1.邏輯庫關(guān)聯(lián)可以通過LIBNAME語句、LIBNAME函數(shù)、使用“新建邏輯庫”窗口或操作環(huán)境命令來定義邏輯庫,并將SAS邏輯庫與對應(yīng)的邏輯庫引用名關(guān)聯(lián)起來。之后便可以通過該邏輯庫引用名來讀取、寫入并更新SAS邏輯庫中的SAS文件。使用LIBNAME語句定義SAS邏輯庫的簡化語法如下:LIBNAME邏輯庫引用名<邏輯庫引擎>'邏輯庫物理位置';
(1)邏輯庫引用名在定義SAS邏輯庫時需要指定邏輯庫引用名,臨時邏輯庫WORK除外。SAS邏輯庫引用名的命名規(guī)范如下:·最大長度是8個字符。·必須以字母(從A~Z,大小寫均可)或下劃線(_)開始?!た梢允菙?shù)字(0~9)、字母和下劃線(_)的任意組合。例如,下面的SAS語句定義了SAS邏輯庫,其引用名為saslib。libnamesaslibbase'c:\sas\data';
注意SAS邏輯庫與SAS邏輯庫引用名是兩個比較容易混淆的概念。SAS邏輯庫是SAS文件的集合,SAS文件是其組成部分;而SAS邏輯庫引用名是我們定義邏輯庫時賦予這個邏輯庫的引用名,并且在以后可以通過該邏輯庫引用名來訪問邏輯庫中的SAS文件。永久邏輯庫(即其中的SAS文件)會一直存在,而通常SAS邏輯庫引用名僅在當(dāng)前SAS會話中有效,除非使用“新建邏輯庫”窗口指定邏輯庫時勾選了“啟動時啟用”選項。永久邏輯庫和“新建邏輯庫”窗口,在后面都有介紹。(2)邏輯庫引擎SAS邏輯庫引擎是SAS軟件和SAS邏輯庫之間的接口軟件組件,每個SAS邏輯庫都關(guān)聯(lián)一種邏輯庫引擎。邏輯庫引擎識別邏輯庫中的文件并以SAS可理解的格式將文件內(nèi)容呈現(xiàn)給SAS。SAS提供多種引擎以管理多個格式的數(shù)據(jù)。通過這些引擎SAS可以進行如下操作:存儲和訪問磁盤文件,將數(shù)據(jù)從物理位置放入內(nèi)存中,讀取其他軟件產(chǎn)生的數(shù)據(jù)庫文件,以及在不同操作系統(tǒng)之間遷移SAS文件等。邏輯庫引擎可分為原生邏輯庫引擎和接口邏輯庫引擎。原生邏輯庫引擎也就是默認(rèn)的Base引擎,訪問由SAS創(chuàng)建和處理的SAS文件。在創(chuàng)建新邏輯庫時如果不指定引擎,SAS會自動選擇BaseSAS引擎。該引擎根據(jù)自身版本的不同,可處理SAS7、SAS8和SAS9文件,這些文件對應(yīng)的版本引擎名稱分別為V7、V8和V9。大多數(shù)情況下,SAS9可以直接處理SAS8、SAS7和SAS6創(chuàng)建的SAS文件,不需要對其進行轉(zhuǎn)換。關(guān)于版本兼容性可能存在的問題及對應(yīng)解決方法,可參考SAS幫助文檔學(xué)習(xí)。接口邏輯庫引擎用來訪問由其他軟件系統(tǒng)(例如關(guān)系型數(shù)據(jù)庫系統(tǒng)、ERP系統(tǒng)等)管理的數(shù)據(jù)。接口邏輯庫對用戶不透明,需要顯式指定引擎名稱,并且需要相應(yīng)的SAS/ACCESS軟件許可,而且通常還需要安裝相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)的客戶端軟件。例如要訪問Teradata數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)文件,要有SAS/ACCESStoTeradataInterface的許可,并且在定義邏輯庫時,LIBNAME語句中要指定對應(yīng)的邏輯庫引擎為Teradata數(shù)據(jù)庫對應(yīng)的引擎,同時還要安裝了Teradata提供的客戶端軟件。下面給出了定義原生邏輯庫和接口邏輯庫示例?!ase引擎相關(guān)代碼如下(語句中base選項可省略):libnamesaslibbase'c:\sas\data';
·SAS/ACCESStoTeradata引擎相關(guān)代碼如下:libnametdlibteradataserver=tera2650user=user1password=password1database=hps;
(3)邏輯庫物理位置SAS邏輯庫物理位置是一個或多個操作系統(tǒng)能夠識別的物理位置,或者是一個或多個已經(jīng)定義了的其他SAS邏輯庫。在上面給出的Base引擎示例中,邏輯庫saslib的物理路徑為c:\sas\data。對于連接到數(shù)據(jù)庫管理系統(tǒng)的SAS邏輯庫,通常是通過一系列數(shù)據(jù)庫連接選項指定要訪問的數(shù)據(jù)庫管理系統(tǒng)的信息。如在SAS/ACCESStoTeradata引擎示例中,通過數(shù)據(jù)庫連接選項分別指定了Teradata數(shù)據(jù)庫服務(wù)器的名稱、使用的用戶名、密碼及數(shù)據(jù)庫名稱。SAS邏輯庫還可以有多個物理位置。下面的代碼示例給出了定義多個物理位置的SAS邏輯庫Y2014。這3段代碼都能實現(xiàn)將邏輯庫引用名Y2014與4個物理位置c:\sas\data\quater1、c:\sas\data\quater2、c:\sas\data\quater3和c:\sas\data\quater4相關(guān)聯(lián)?!ごa1:libnameY2014('c:\sas\data\quater1''c:\sas\data\quater2'
'c:\sas\data\quater3''c:\sas\data\quater4');
·代碼2:libnameQ1_2004'c:\sas\data\quater1';
libnameQ2_2004'c:\sas\data\quater2';
libnameQ3_2004'c:\sas\data\quater3';
libnameQ4_2004'c:\sas\data\quater4';
libnameY2014(Q1_2014Q2_2014Q3_2014Q4_2014);
·代碼3:libnameQ2_2004'c:\sas\data\quater2';
libnameQ3_2004'c:\sas\data\quater3';
libnameQ4_2004'c:\sas\data\quater4';
libnameY2014('c:\sas\data\quater1'Q2_2014Q3_2014Q4_2014);
當(dāng)一個物理位置下的空間不夠時,定義多個物理位置的SAS邏輯庫非常有用。這樣,在寫程序時只需要使用一個SAS邏輯庫引用名,當(dāng)前面的物理路徑空間用盡時,SAS會自動將寫入的SAS文件存儲到其他物理路徑。2.永久和臨時SAS邏輯庫SAS邏輯庫通常為永久數(shù)據(jù)庫。永久SAS邏輯庫存儲在計算機的固定存儲介質(zhì)上,當(dāng)SAS會話終止時不會被刪除,其中的SAS文件可以在后續(xù)的SAS會話中繼續(xù)使用。當(dāng)使用永久SAS邏輯庫中的文件時,通常需要指定邏輯庫引用名作為兩層SAS文件名的第一部分,并且要告訴SAS該文件的存儲位置,例如saslib.Inventory,表明讀取或?qū)懭隨AS邏輯庫saslib中的Inventory文件、數(shù)據(jù)集或目錄(Catalog)等,至于Inventory具體指的是哪種SAS文件,與所使用的上下文環(huán)境有關(guān)。同時SAS還提供了一種在SAS會話或作業(yè)運行過程中存儲臨時數(shù)據(jù)和文件的臨時邏輯庫,其引用名為WORK。邏輯庫WORK不需要顯式指定,且僅在當(dāng)前SAS會話或作業(yè)執(zhí)行過程中存在。邏輯庫WORK中的文件在該SAS會話期間可用于任何DATA步或SAS過程,但如果SAS會話正常結(jié)束,WORK庫中的文件在SAS會話結(jié)束時會被自動刪除。一般情況下,可以通過指定一級名稱來讀寫這個邏輯庫中的SAS文件,同樣也可以使用二級名稱。例如,要引用臨時邏輯庫中的SAS文件Inventory,直接使用Inventory和使用work.Inventory的效果一樣。在開發(fā)SAS程序時,如果一次分析包含多個PROC步,通常會將前一個PROC步產(chǎn)生的中間數(shù)據(jù)或文件放入臨時邏輯庫中,供后面的分析過程使用。在分析完成時,這些中間數(shù)據(jù)或文件會自動清除。當(dāng)然,良好的開發(fā)風(fēng)格應(yīng)該是在完成任務(wù)后,通過代碼顯式地刪除所產(chǎn)生的臨時數(shù)據(jù)。3.SAS系統(tǒng)邏輯庫SAS提供了4個特殊的系統(tǒng)邏輯庫:WORK、user、sashelp和sasuser。WORK是臨時邏輯庫,前面已經(jīng)介紹過,其他3個都是永久邏輯庫。user邏輯庫可以使用LIBNAME語句、LIBNAME函數(shù)、系統(tǒng)選項USER=或操作系統(tǒng)顯式指定。指定user邏輯庫后,可以使用一級名稱讀取該邏輯庫中的文件,就像引用臨時邏輯庫中的文件一樣。一旦定義了SAS邏輯庫user,在SAS程序中使用一級名稱讀取或?qū)懭肴魏蜸AS文件時,SAS都會在該user邏輯庫對應(yīng)的物理位置查找或?qū)懭胂鄳?yīng)的SAS文件。這時,如果要引用WORK邏輯庫中的文件,必須指定帶有WORK邏輯庫引用名的二級名稱。當(dāng)SAS會話結(jié)束時,存儲在邏輯庫user里的文件不會被刪除。sashelp邏輯庫包含一組用于控制SAS會話各方面信息的目錄(Catalog)和其他文件。該邏輯庫中存儲的這些目錄和文件適用于任何使用該SAS系統(tǒng)的用戶。用戶的個性化設(shè)置會存儲在sasuser邏輯庫中。如果除了安裝BaseSAS軟件外,還裝了SAS的其他產(chǎn)品,那么這些產(chǎn)品需要用到的一些目錄也會包含在sashelp邏輯庫中。sasuser邏輯庫包含能夠定制SAS特征以滿足特定要求的SAS目錄。如果默認(rèn)的sashelp邏輯庫對一些應(yīng)用程序不適用,那么可以修改它們并將這些個性化的設(shè)置保存在sasuser邏輯庫中。例如,在SAS里,可以在名稱為file的個人Profile目錄中存儲個人默認(rèn)的功能鍵設(shè)置或窗口屬性。2.1.2SAS數(shù)據(jù)集SAS數(shù)據(jù)集是存儲在SAS邏輯庫中、由SAS創(chuàng)建和處理的SAS文件,是SAS存儲數(shù)據(jù)的主要方式。SAS數(shù)據(jù)集包含以表的觀測(行)和變量(列)為形式存在的數(shù)據(jù)值,以及用以描述變量類型、長度和創(chuàng)建該數(shù)據(jù)集時所使用的引擎等信息的描述信息。根據(jù)其是否包含真正的數(shù)據(jù)值,SAS數(shù)據(jù)集可分為SAS數(shù)據(jù)文件和SAS視圖。SAS數(shù)據(jù)文件包含數(shù)據(jù)和描述信息,在邏輯庫中的成員類型是DATA;而SAS視圖不包含數(shù)據(jù)值,是指向其他數(shù)據(jù)源的虛數(shù)據(jù)集,成員類型是VIEW。下面分別介紹SAS數(shù)據(jù)集的文件內(nèi)容、命名,各種SAS數(shù)據(jù)文件和SAS視圖,以及它們的創(chuàng)建方式。1.數(shù)據(jù)集文件如圖2.2所示給出了SAS數(shù)據(jù)集的邏輯組件,這些組件可能分布在操作系統(tǒng)下的不同文件中。圖2.2SAS數(shù)據(jù)集邏輯組件下面來具體看看圖2.2中的各個組件?!っ枋鲂畔ⅲ好枋隽薙AS數(shù)據(jù)集自身及其變量的屬性,包括觀測數(shù)、觀測長度、該數(shù)據(jù)集上次的修改日期等其他信息。其變量的描述信息包括名稱、類型、長度、輸入輸出格式、標(biāo)簽,以及是否已經(jīng)為該變量建立索引等屬性?!?shù)據(jù)值:以矩形表的形式排列。一個數(shù)據(jù)集可包含若干個觀測(也稱為行),每個觀測通常由一個或多個變量(也稱為列)值組成?!に饕菏菃为毜腟AS文件,可以為SAS數(shù)據(jù)文件創(chuàng)建索引,以提供對指定觀測的直接訪問。索引文件與其數(shù)據(jù)文件有著相同的名稱,但成員類型為INDEX。索引可提供對指定觀測更快的訪問,尤其是對較大的數(shù)據(jù)集而言。·擴展屬性:是定義在數(shù)據(jù)集或變量之上的元數(shù)據(jù)。擴展屬性使用DATASETS過程創(chuàng)建,表示為<名稱-值>對。下面以一個簡單的SAS數(shù)據(jù)集為例,來理解數(shù)據(jù)集的描述信息、觀測和變量。在SAS窗口提交如下代碼生成數(shù)據(jù)集:libnamesaslib'c:\sas\data';
datasaslib.Inventory;
inputProduct_ID$InstockPrice;
datalines;
P001R12125.00
P003T3440.00
P301M23500.00
PC02M12100.00
;
run;
使用CONTENTS過程打印數(shù)據(jù)集的屬性信息,代碼如下:proccontentsdata=saslib.inventory;
run;
CONTENTS過程生成的結(jié)果如圖2.3所示。其中包含了上面提到的數(shù)據(jù)集信息、主機相關(guān)信息和變量信息等。圖2.3數(shù)據(jù)集描述信息輸出提交PRINT過程代碼,打印數(shù)據(jù)集信息。procprintdata=saslib.inventorynoobs;
run;
上面代碼打印的數(shù)據(jù)集如圖2.4所示。圖2.4數(shù)據(jù)集數(shù)據(jù)值該數(shù)據(jù)集包含4個觀測,每個觀測表示一種產(chǎn)品的各類信息。這里有3個變量:Product_ID、Instock和Price,分別表示產(chǎn)品編號、庫存數(shù)和價格。其中P001R、12、125等均為數(shù)據(jù)值。2.數(shù)據(jù)集命名每個SAS數(shù)據(jù)集的完整名稱如下:libref.SAS-data-set.membertype。共3個組成部分,從左到右依次為邏輯庫引用名、數(shù)據(jù)集名稱和成員類型。在引用數(shù)據(jù)集時,通常會指定前兩個,SAS會根據(jù)上下文環(huán)境,例如該數(shù)據(jù)集出現(xiàn)的位置或數(shù)據(jù)集的自描述信息,來確定第三個。邏輯庫引用名是與SAS數(shù)據(jù)集所在物理位置相關(guān)聯(lián)的SAS邏輯庫名。當(dāng)創(chuàng)建新數(shù)據(jù)集時,邏輯庫引用名表明要將該數(shù)據(jù)集保存在哪里(位置)。當(dāng)引用SAS數(shù)據(jù)集時,邏輯庫引用名會告訴SAS在哪個邏輯庫中找到該數(shù)據(jù)集。數(shù)據(jù)集名稱遵守的SAS命名規(guī)則如下:·最大長度為32字符?!け仨氁宰帜福◤腁~Z,大小寫均可)或下劃線(_)開始?!た梢允菙?shù)字、字母和下劃線(_)的任意組合。成員類型由SAS指定,例如SAS數(shù)據(jù)文件的成員類型是DATA,SAS視圖的成員類型是VIEW。這些對開發(fā)SAS程序是透明的。在程序語句中創(chuàng)建和使用SAS數(shù)據(jù)集時,根據(jù)數(shù)據(jù)集所在的邏輯庫或要存儲的邏輯庫來確定使用一級或二級名稱。一級名稱只包含數(shù)據(jù)集名稱,用于讀寫臨時邏輯庫WORK中的數(shù)據(jù)集,或當(dāng)邏輯庫user被指定時讀寫邏輯庫user中的數(shù)據(jù)集。二級名稱由邏輯庫引用名和數(shù)據(jù)集名稱組成,形式為libref.SAS-data-set,訪問除邏輯庫user之外的其他永久邏輯庫中的數(shù)據(jù)集時,均需要使用二級名稱。注意前面介紹過SAS數(shù)據(jù)文件和視圖都是SAS數(shù)據(jù)集。SAS不允許在相同的邏輯庫中存在數(shù)據(jù)集名稱相同的SAS數(shù)據(jù)文件和視圖。因為從語法上來講,同一程序語句可以同時接受SAS數(shù)據(jù)文件和SAS視圖,SAS不能從程序語句判斷需要處理的是哪一個文件。雖然在訪問WORK或user邏輯庫中的數(shù)據(jù)集時可以用一級名稱,即可省略邏輯庫引用名,但為了保持良好SAS代碼編寫風(fēng)格,不建議省略。3.變量屬性SAS數(shù)據(jù)集變量的屬性包括變量名、類型、長度、輸出格式(format)、輸入格式(informat)和標(biāo)簽(label)。輸出格式、輸入格式和標(biāo)簽是變量的可選屬性。每個變量的變量名必須遵守的SAS命名規(guī)范如下:·最大長度為32字節(jié)?!け仨氁宰帜福◤腁~Z,大小寫均可)或下劃線(_)開始?!た梢允菙?shù)字、字母和下劃線(_)的任意組合。變量的類型是字符型或數(shù)字型。字符型變量可包含任何值,而數(shù)字型變量只能包含數(shù)字值(數(shù)字0~9、=、-、點(.)和科學(xué)計數(shù)法的E)。變量類型確定了變量的缺失值如何顯示。字符型變量缺失值是空格,而數(shù)字型的變量缺失值是點(.)。SAS以數(shù)字值存儲日期和時間。默認(rèn)情況下,SAS的日期值指從1960年1月1日開始的天數(shù),SAS使用從凌晨開始的秒數(shù)存儲時間值,SAS的日期時間值(datetime)指從1960年1月1日開始的秒數(shù)。該開始日期也可以通過系統(tǒng)變量YEARCUTOFF指定為其他值。下面提交如下代碼來生成數(shù)據(jù)集sales,并使用CONTETNS過程和PRINT過程分別打印該數(shù)據(jù)集的描述信息和數(shù)據(jù)值。libnamesaslib'c:\sas\data';
datasaslib.sales;
infiledatalinesdsdmissover;
inputEmp_ID$Dept$SalesDate;
formatSalesCOMMA10.Dateyymmdd10.;
informatDatedate9.;
labelEmp_ID="員工ID"Dept="部門"Sales="銷售數(shù)據(jù)";
labelDate="銷售時間";
datalines;
ET001,TSG,$10000,01JAN2012
ED002,,$12000,01FEB2012
ET004,TSG,$5000,02MAR2012
EC002,CSG,$23000,01APR2012
ED004,QSG,,01AUG2012
;
run;
proccontentsdata=saslib.sales;
run;
procprintdata=saslib.salesnoobslabel;
run;
如圖2.5所示為CONTENTS過程打印的部分結(jié)果,表示該數(shù)據(jù)集的變量屬性,其中,Date和Sales為數(shù)值型變量,Dept和Emp_ID為字符型變量。如圖2.6所示為PRINT過程的打印結(jié)果,可以看出,Dept(部門)的缺失值為空格,Sales(銷售數(shù)據(jù))的缺失值為點(.)。圖2.5變量屬性圖2.6打印數(shù)據(jù)集變量的長度與類型有關(guān)。字符變量的長度可以在定義時給出,否則其長度為第一次賦值時值的長度,最大長度可到32K。數(shù)字型變量的默認(rèn)長度是8個字節(jié),也可以指定不同的長度。除了名稱、類型和長度外,還可以定義變量的輸出格式、輸入格式和標(biāo)簽,這些都是可選屬性。格式(format)會影響數(shù)據(jù)值輸出的方式。SAS提供了各種字符、數(shù)字和日期時間格式。例如,為了將23000顯示為23000,必須使用COMMAw.d形式的輸出格式。其中w表示最大寬度,d為小數(shù)位數(shù)。比如,在圖2.5中,Date變量的輸出格式為“YYMMDD10.”,打印時該變量的形式則為YYYY-MM-DD(例如2012-01-01)。Sales的輸出格式為“COMMA10.”,對應(yīng)的數(shù)據(jù)輸出形式則為10000。還可以創(chuàng)建并存儲自定義的格式,具體在第5章介紹。輸入格式(informat)指定數(shù)據(jù)值以特定的格式讀入,從而成為標(biāo)準(zhǔn)的SAS值。在讀取包含字母或其他特殊字符的數(shù)字值時必須使用輸入格式。例如,需要把輸入值“$23000”讀取為數(shù)字型的變量,則必須使用輸入格式DOLLARw.d才能正確讀入。自定義的格式也可以用作為輸入格式。SAS提供了豐富的輸入輸出格式用于從外部文件讀取各種日期格式和顯示各種日期格式,以滿足對各種日期格式的需要。在上面的示例中使用輸入格式“DATE9.”讀入了“01JAN2012”形式的日期,輸出時使用的是輸出格式“YYMMDD10.”,從而將存儲的數(shù)字顯示為“2012-01-01”。變量都可以有標(biāo)簽(label)。標(biāo)簽通常是描述該變量的文本,最大長度為256個字符。默認(rèn)情況下,報表以變量名來標(biāo)識變量,但是可以將一個標(biāo)簽分配給相應(yīng)的變量來顯示該變量的描述信息。上例中Emp_ID的標(biāo)簽為“員工編號”,Dept的標(biāo)簽為“部門”,Date的標(biāo)簽為“銷售時間”,Sales的標(biāo)簽為“銷售數(shù)據(jù)”。在代碼中可以看到PRINT過程使用了LABEL選項,這樣一來,打印的數(shù)據(jù)集表頭將會使用各變量的標(biāo)簽而不是變量名稱。4.SAS數(shù)據(jù)文件與SAS視圖相比較,SAS數(shù)據(jù)文件是一種在其文件中包含數(shù)據(jù)的數(shù)據(jù)集。SAS數(shù)據(jù)文件可以由DATA步創(chuàng)建,其名稱在DATA語句中指定,還可以由PROC步創(chuàng)建,其名稱通常是在該PROC步語句或PROC步的OUTPUT語句中指定的。有時,如果程序沒有給輸出數(shù)據(jù)集指定名稱,SAS會使用默認(rèn)名稱。有兩種類型的數(shù)據(jù)文件:原生SAS數(shù)據(jù)文件和接口SAS數(shù)據(jù)文件。原生數(shù)據(jù)文件是SAS格式的文件,用來存儲SAS格式的數(shù)據(jù)值和描述信息。接口數(shù)據(jù)文件是指數(shù)據(jù)以其他格式存在,并且SAS可以通過SAS/ACCESS接口引擎訪問的數(shù)據(jù)文件,例如存在于Oracle、DB2、Sybase、ERP系統(tǒng)中的數(shù)據(jù)文件。SAS通過SAS/ACCESS接口引擎來訪問這些文件中的數(shù)據(jù),并將這些文件當(dāng)作SAS數(shù)據(jù)集處理。SAS程序語句創(chuàng)建的是原生SAS數(shù)據(jù)文件還是接口SAS數(shù)據(jù)文件,取決于該數(shù)據(jù)文件所屬的邏輯數(shù)據(jù)庫。如果該邏輯庫是通過Base引擎定義的,則所生成的數(shù)據(jù)文件是原生數(shù)據(jù)文件,如果是通過SAS/ACCESS接口邏輯庫定義的,則所創(chuàng)建的是接口SAS數(shù)據(jù)文件。使用DATA步創(chuàng)建SAS數(shù)據(jù)文件的語法如下:DATA數(shù)據(jù)集名稱;
…SAS語句…;
RUN;
其中,SAS語句用于指定數(shù)據(jù)源。不同的數(shù)據(jù)源,SAS語句也不盡相同。例如DATELINES語句表示從程序語句中讀取數(shù)據(jù),SET語句讀取指定的輸入數(shù)據(jù)集,INFILE語句讀取指定的外部數(shù)據(jù)文件等。上例中的DATA步給出了使用DATALINES語句讀取列舉輸入數(shù)據(jù)的一個示例。該代碼首先定義了一個物理路徑為c:\sas\data文件夾的SAS邏輯庫saslib,接著以DATA關(guān)鍵字開始的DATA步創(chuàng)建了存儲在邏輯庫saslib中的數(shù)據(jù)集Inventory。有些PROC步會在PROC語句或PROC步的
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度耕地質(zhì)量提升工程耕地指標(biāo)出讓與執(zhí)行合同3篇
- 二零二五年度公共設(shè)施蟲鼠害防治與環(huán)境衛(wèi)生管理合同4篇
- 個人勞務(wù)合同簡單范本(2024版)
- 二零二五版智能語音助手軟件采購及集成合同2篇
- 2025年新材料研發(fā)廠房抵押租賃合同3篇
- 2025版危險化學(xué)品倉儲物流購銷合同范本3篇
- 2025年節(jié)日慶典宣傳品制作合同范本2篇
- 2025年度農(nóng)業(yè)科技產(chǎn)品推廣合同范本4篇
- 2025年度廚師食材采購與供應(yīng)鏈管理合同范本4篇
- 2025版企業(yè)禮儀培訓(xùn)與文化傳播戰(zhàn)略合作伙伴合同3篇
- 2025年山東浪潮集團限公司招聘25人高頻重點提升(共500題)附帶答案詳解
- 2024年財政部會計法律法規(guī)答題活動題目及答案一
- 2025年江西省港口集團招聘筆試參考題庫含答案解析
- (2024年)中國傳統(tǒng)文化介紹課件
- 液化氣安全檢查及整改方案
- 《冠心病》課件(完整版)
- 2024年云網(wǎng)安全應(yīng)知應(yīng)會考試題庫
- 公園保潔服務(wù)投標(biāo)方案
- 光伏電站項目合作開發(fā)合同協(xié)議書三方版
- 高中物理答題卡模板
- 芳香植物與芳香療法講解課件
評論
0/150
提交評論