SAS 編程基礎(chǔ)_第1頁
SAS 編程基礎(chǔ)_第2頁
SAS 編程基礎(chǔ)_第3頁
SAS 編程基礎(chǔ)_第4頁
SAS 編程基礎(chǔ)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1.1 SAS語言組件1.1.1 SAS文件使用SAS時候會碰到不同類型的文件,如SAS數(shù)據(jù)集、SAS目錄冊,這些由SAS創(chuàng)建、儲存、管理的文件就是SAS文件。所有的SAS文件都保存在SAS邏輯庫中。最常用的SAS文件就是SAS數(shù)據(jù)集和SAS目錄冊。1.1.2 SAS外部文件SAS不能直接識別的數(shù)據(jù)文件稱之為外部文件,外部文件一般用于儲存數(shù)據(jù)。外部文件一般用來儲存以下內(nèi)容:· 要讀入SAS數(shù)據(jù)文件的原始數(shù)據(jù);· SAS程序語句· 過程步輸出1.1.3 DNMS文件SAS軟件可以和其他數(shù)據(jù)庫產(chǎn)品進行數(shù)據(jù)文件轉(zhuǎn)換。比如數(shù)據(jù)文件方面使用最廣泛的DBMS(database

2、 management system)數(shù)據(jù)庫系統(tǒng)文件。1.1.4 SAS語言元素SAS語言由語句、表達式、選項、格式,以及其他編程語言名稱類似的函數(shù)組成:SAS語句有兩種語句:· 數(shù)據(jù)步· 過程步數(shù)據(jù)步是一組語句組合,可以進行以下操作:· 從外部文件讀取數(shù)據(jù)· 將數(shù)據(jù)寫入到外部文件中· 讀取SAS數(shù)據(jù)文件和視圖· 創(chuàng)建SAS數(shù)據(jù)文件和視圖過程步用來對SAS數(shù)據(jù)集進行分析和產(chǎn)生報表。比如對數(shù)據(jù)集進行分析、畫圖、查詢和打印等操作。1.1.5 SAS宏工具BASE SAS 軟件包括SAS宏功能,可以用來客戶化以及拓展SAS程序,減少重復(fù)代碼

3、的輸入。宏就是包含被編譯的宏程序語句和文本的SAS文件??梢允褂煤曜詣拥纳蒘AS語句和命令,在日志中寫入信息,建立和改變宏變量的值。1.2 SAS文件系統(tǒng)1.2.1 邏輯庫SAS邏輯庫由一組SAS文件組成。SAS軟件系統(tǒng)的信息。SAS軟件系統(tǒng)的信息組織有兩層,第一層是SAS邏輯層,第二層是SAS文件。SAS邏輯庫是一個邏輯概念,本身不是物理實體,它對于的實體是操作系統(tǒng)下的一個文件夾或幾個文件夾中的一組SAS文件。1.邏輯庫名與引用SAS文件邏輯庫名是SAS名。長度的=不能超過8B 。如:ResDat建立SAS邏輯庫的方法:· 用菜單操作;· 用LIBNAME語句語句格式:

4、LIBNAME libref <engine> 'SAS-data-library'語法說明:LIBNAME :邏輯庫名libref <engine> 引擎名稱'SAS-data-library' 邏輯庫對應(yīng)的物理地址2.臨時庫和永久庫臨時邏輯庫是指它的內(nèi)容只在啟動SAS時存在,一旦退出SAS時內(nèi)容完全被刪除。系統(tǒng)默認的臨時邏輯庫為WORK,引用臨時庫WOR中文件時,可以不加庫名WORK永久邏輯庫是指它的內(nèi)容在SAS關(guān)閉對話之后仍舊保留,直到再次修改或刪除。SAS系統(tǒng)中除了WORK以外的邏輯庫都是永久庫。3.庫引擎庫引擎的功能包括:

5、83; 讀取和寫入數(shù)據(jù)· 列出庫中的文件· 刪除和重命名文件SAS通過不同庫引擎讀寫不同格式的文件。每個SAS引擎都有著自身的運行特性。· 運行由其他版本SAS軟件生成的文件;· 讀取由其他軟件生成的數(shù)據(jù)文件;· 存儲和訪問硬盤或者磁帶上的文件;· 決定文件中的變量和觀測如何放置;· 將文件從物理位置地址讀取放入到內(nèi)存中;· 在不同的操作系統(tǒng)之間傳輸SAS文件1.2.2 數(shù)據(jù)集1.數(shù)據(jù)集分類數(shù)據(jù)集有兩類:· SAS數(shù)據(jù)文件(同時描述信息和存儲數(shù)據(jù)值)· SAS數(shù)據(jù)視圖(不實際存儲數(shù)據(jù),只包含表的

6、描述信息以及一組用來讀取數(shù)據(jù)的查詢語句)以上兩個數(shù)據(jù)文件在同一級目錄或邏輯庫下時不能同名。2.數(shù)據(jù)集構(gòu)成· 描述信息· 數(shù)據(jù)值SAS數(shù)據(jù)集的一行被稱之為觀測,一列被稱之為變量,包括一組有著相同的特征的值。SAS使用缺失值表示一個觀測中某個變量值得缺失。1.3.3 數(shù)據(jù)文件SAS數(shù)據(jù)文件是包含描述信息和數(shù)據(jù)值的SAS數(shù)據(jù)集。一般來說,SAS數(shù)據(jù)文件分類如下:· 普通的SAS數(shù)據(jù)文件:SAS格式的數(shù)據(jù)文件· 接口數(shù)據(jù)文件:以其他數(shù)據(jù)軟件格式儲存的數(shù)據(jù)的數(shù)據(jù)文件。· 數(shù)據(jù)文件實際儲存數(shù)值,視圖只是包含表的描述信息以及一組用來讀取數(shù)據(jù)的查詢語句。

7、83; 數(shù)據(jù)文件是靜態(tài)的,視圖是動態(tài)的。· SAS數(shù)據(jù)集可以保存的在磁帶或者其他的存儲媒介上,但是數(shù)據(jù)視圖由于其他動態(tài)特性,不能保存在磁帶上。· SAS數(shù)據(jù)視圖是只讀性的,不可以修改,而一些SQL視圖可以被修改。· SAS數(shù)據(jù)文件可以被壓縮,而視圖則不可以。1.2.4 數(shù)據(jù)視圖1.數(shù)據(jù)視圖定義SAS數(shù)據(jù)視圖就是用來從其他文件中讀取數(shù)據(jù)的一種SAS文件。SAS視圖一般分為兩種:· Native View ,由數(shù)據(jù)步或者SQL過程創(chuàng)建· Interface View,由SAS/ACCESS軟件創(chuàng)建,可以讀取其他數(shù)據(jù)庫管理系統(tǒng)(DBMS)的中的數(shù)據(jù)庫

8、。2.何時使用視圖數(shù)據(jù)視圖占用額外的運行時間,數(shù)據(jù)文件占用額外的硬盤空間。3.數(shù)據(jù)視圖的使用優(yōu)勢· 可以使用連接多個表的視圖來合并數(shù)據(jù)集· 數(shù)據(jù)視圖可以節(jié)省大量的空間· 數(shù)據(jù)視圖可以保證讀取的數(shù)據(jù)集永遠都是新的。· 更改一個數(shù)據(jù)視圖只需要改變這個視圖的查詢語句· 使用SAS軟件,視圖可以將多個不同的主機上的數(shù)據(jù)文件整合,以整體的形式呈現(xiàn)。4.數(shù)據(jù)步視圖數(shù)據(jù)步視圖包含用于多個數(shù)據(jù)源中讀取數(shù)據(jù)的數(shù)據(jù)步程序,這些數(shù)據(jù)源包含以下幾種:· 原始數(shù)據(jù)文件· SAS數(shù)據(jù)文件· PROC SQL視圖· SAS/ACCES

9、S視圖· DB2、ORACLE或者其他DBMS數(shù)據(jù)語法格式:5. PROC SQL視圖PROC SQL視圖為一個帶有名稱的PROC SQL 查詢??梢宰x寫的數(shù)據(jù)源同數(shù)據(jù)步視圖。例如:1.2.5 存儲編譯的DATA步程序1.定義存儲編譯的DATA步程序是包含已經(jīng)被編譯過DATA步程序并儲存在SAS邏輯庫中的程序文件。文件類型是程序。2.創(chuàng)建存儲編譯的DATA步程序語句格式:語法說明:data-set-name 數(shù)據(jù)集名稱stored-program-name 存儲編譯的DATA步程序名稱password-option 給DATA步程序名稱分配一個密碼source-option 存儲或編

10、譯源碼1.2.6 其他SAS文件1.表詞典2.目錄冊文件1.3 SAS語言元素主要的語言元素包括:· 數(shù)據(jù)集選項· 輸出和輸入格式· 函數(shù)和CALL子程序· 應(yīng)用響應(yīng)測量宏· 語句· SAS系統(tǒng)選項· 表達式1.3.1 數(shù)據(jù)集選項括號中的數(shù)據(jù)集選項可以對數(shù)據(jù)集進行如下操作:· 重新命名變量;· 選擇需要的觀測;· 輸出數(shù)據(jù)集中保留或刪除的變量;· 數(shù)據(jù)集加密;語句格式:1.3.2 輸入和輸出格式輸出格式format是SAS用來確定如何輸出或?qū)懗鰯?shù)據(jù)值的指令,用FORMAT控制數(shù)據(jù)值在輸

11、出時使用的格式,如YYMMDD10,格式將一個日期數(shù)輸出讀入到新的數(shù)據(jù)集中。輸出格式informat是SAS用來確定如何將數(shù)據(jù)讀入變量的指令。語句格式:<$>format<w>.<d><$>format<w>.<d>格式說明:$ 指定為字符格式,如果該項空缺,則默認是數(shù)值格式format 規(guī)定為有效的SAS輸出格式informat 規(guī)定為有效的SAS輸入格式w 設(shè)定輸入輸出的長度,一般來說是數(shù)據(jù)所占的列的數(shù)目d 設(shè)定數(shù)據(jù)值數(shù)據(jù)中華小數(shù)點的位數(shù)1.3.3 函數(shù)和CALL子程序1.函數(shù)定義SAS哈數(shù)對數(shù)據(jù)參數(shù)進行計算處理并返回

12、一個值。在BASE SAS軟件中,可以在數(shù)據(jù)步程序語句、WHERE表達式、宏語句、SQL語句以及一些統(tǒng)計過程的語句中的使用函數(shù)。2.CALL子程序定義CALL子程序用來改變變量值,或執(zhí)行一些系統(tǒng)功能,CALL子程序類似于函數(shù),但是不能再賦值語句使用,所有的SAS CALL子程序都只能被CALL語句使用。也就是所有的CALL子程序都要放在CALL關(guān)鍵詞后。1.3.4 語句SAS語句就是一系列關(guān)鍵詞、SAS名稱、算符,以及特殊字符的組合。所有的SAS語以分號結(jié)尾。SAS語句一般分為 數(shù)據(jù)步語句 與 過程步語句 ,以及可以用在SAS程序任何地方的全局通用語句。KEWWORD parameter .

13、<item1|item2.|itemn>options;關(guān)鍵詞 參數(shù). <項目1或項目2.項目n>選項;其中:· 粗體表示必須按顯示形式書寫的關(guān)鍵詞;· 一般字體表示用戶提供的信息;· < >表示括號內(nèi)的信息可選;· | 表示任選1.可執(zhí)行數(shù)據(jù)步語句和聲明數(shù)據(jù)步語句2.全局通用語句1.3.5 SAS系統(tǒng)選項系統(tǒng)選項用來控制SAS的運行方式,如SAS系統(tǒng)啟動、軟硬件的連接,SAS程序的運行等。語句格式:OPTIONS options(s):option設(shè)定一個或多個系統(tǒng)選項,任何系統(tǒng)選項都有一個默認設(shè)置。2.4 表達式表

14、達式由一系列操作符和操作對象構(gòu)成,產(chǎn)生一個目標值。使用表達式可以對變量作變換和賦值,創(chuàng)建新變量,計算新數(shù)值以及控制條件語句的運行等。操作對象有:· 變量;· 常數(shù)。操作符包括:· 算術(shù)算符· 比較算符· 邏輯算符· SAS函數(shù)· 括號例 2.7 表達式里允許有空格Y=X+10;Y= X+ 10; /*例中,兩語句等價*/2.4.1 SAS常數(shù)SAS常數(shù)是SAS系統(tǒng)可以識別的一些固定值。SAS常數(shù)值包括:· 數(shù)字;· 引號括起來的字符串;· 其他特殊記號SAS常數(shù)的5種類型:· 數(shù)值常數(shù)

15、;· 字符常數(shù);· 日期時間數(shù)值常數(shù);· 十六進制數(shù)值常數(shù)和字符常數(shù);1.數(shù)值常數(shù)數(shù)值常數(shù)的表示格式包括:· 標準格式: 1,01,+1,-1,1,1· 科學(xué)計數(shù)法:1,1e11,1.2e· 十六進制格式:1ex,12x,9x2.字符常數(shù)字符常數(shù)通常由單引號括起來的132767個字符串組成。如果字符常數(shù)內(nèi)含有引號,引用時,要么它的引號用兩個連續(xù)的單引號,要么用一個雙引號。3.日期時間常數(shù)將日期時間值表示為常數(shù)時,要使用相應(yīng)的格式值。格式值帶單引號,后面跟一個D(日期),T(時間),DT(日期時間)。2.4.2 SAS算符1.算術(shù)算符表

16、達式中有一個運算對象是缺失值時,結(jié)果也是缺失值。運行結(jié)果:2.比較算符比較準則:· 數(shù)值和字符都可以· 結(jié)果為真賦值為1,假賦值為0;· 字符值從左到右逐個按ASCII碼排列順序進行比較· 缺失值參加比較時。它比任何有效值都小。if x<y then x=5;else c=12;3.邏輯運算符4.其他運算符5. 運算次序· 先計算括號里面的表達式· 先執(zhí)行較高優(yōu)先級的運算· 相同優(yōu)先級的算符,先執(zhí)行左邊的運算。2.5 SAS變量2.5.1 變量類型SAS變量分為數(shù)值變量和字符變量1.數(shù)值變量數(shù)值變量是SAS系統(tǒng)以浮點(

17、floating-point)方式存儲的數(shù)據(jù),數(shù)值變量包括日期和時間。2.字符變量字符變量可以由阿拉伯字母、數(shù)字09以及其他一些特殊的字符組成。2.5.2 變量屬性SAS變量的屬性包括長度、輸入輸出格式和標簽,未設(shè)定屬性的變量在他們第一次出現(xiàn)時由系統(tǒng)給出。2.5.3 變量列表以及其縮寫規(guī)則許多的SAS語句都需要規(guī)定變量,即按順序列出變量名。了解變量列表的縮寫規(guī)則,會克服復(fù)雜變量引用帶來的麻煩。SAS程序中規(guī)定了完整的變量列表后,就可以使用縮寫的變量列表。2.5.4 創(chuàng)建變量DATA步驟創(chuàng)建變量的方式包括:· 使用賦值語句;· 使用INPUT語句;· 使用FORMA

18、T或INFORMAT語句;· 使用LENGTH語句;· 使用ATTIRB語句1.使用賦值語句如果等號左邊的變量不存在于數(shù)據(jù)集中,則賦值語句會產(chǎn)生一個新的變量,在沒有規(guī)定明確格式的情況下,新的變量格式采用系統(tǒng)默認的格式。data a;x=1;run; /*數(shù)據(jù)集a中有個變量x,值為1*/2.使用INPUT語句例:3. 使用FORMAT或INFROMAT語句2.5.5 變量類型轉(zhuǎn)換1.字符自動轉(zhuǎn)換為數(shù)值2.函數(shù)INPUT將字符轉(zhuǎn)換為數(shù)值3.數(shù)值自動轉(zhuǎn)換為字符4.函數(shù)PUT將數(shù)值轉(zhuǎn)換為字符2.5.6 自動變量自動變量是由數(shù)據(jù)步語句自動創(chuàng)建的。這些自動變量被加入到程序數(shù)據(jù)向量(PD

19、V)中,但是并不輸出到數(shù)據(jù)集中,自動變量在重復(fù)過程中被保留,而不是被設(shè)定為缺省。2.6 錯誤類型與處理SAS系統(tǒng)能夠檢查出錯誤類型有:· 句法錯· 詞義錯· 運行錯· 數(shù)據(jù)錯· 與宏有關(guān)的錯SAS系統(tǒng)提交含有錯誤的程序后,LOG窗口會顯示的信息有:· 出錯的詞;· 錯誤的可能位置· 對錯誤的說明2.6.1 句法錯句法(SYNTAX)錯誤是由程序含有不符合SAS語言的規(guī)則引起。最常見的語法錯誤有:· 關(guān)鍵詞拼寫錯誤· 遺漏RUN語句· 引號或括號不配對· 選項無效日志信息:2.

20、6.2 詞義錯詞義錯的類型有:· 變量名拼寫錯誤· 不正確的引用log運行日志:2.6.3 運行出錯經(jīng)常運行出錯的情況有:· INPUT語句與數(shù)據(jù)不匹配· 非法的數(shù)學(xué)運算· 對BY組分析處理時沒有相應(yīng)的分類排序· 引用不存在的數(shù)組元素· 用INFILE和FILE語句打開或關(guān)閉文件時出錯· 函數(shù)的自變量不合法LOG窗口顯示的運行錯誤信息包括:· 一個出錯信息· 存儲在輸入緩沖區(qū)中的值· 發(fā)生錯誤程序數(shù)據(jù)向量的內(nèi)容· 用NOTE揩油的一個注解日志信息:2.6.4 數(shù)據(jù)錯當(dāng)數(shù)據(jù)不適

21、合的相應(yīng)的SAS語句時,就會報錯。帶有INPUT語句的SAS程序可能產(chǎn)生數(shù)據(jù)錯。LOG窗口顯示的數(shù)據(jù)錯信息包括:· 一個注釋描述這個錯誤· 存儲在輸入緩沖區(qū)中的值· 存儲在程序數(shù)據(jù)向量里的值日志窗口信息:2.7 SAS輸出1.SAS日志SAS日志信息包括:· 提交的運行的程序語句· 程序創(chuàng)建的數(shù)據(jù)集· 程序運行過程中的注釋、警告或錯誤信息;· 每個數(shù)據(jù)集包括的變量和觀測的個數(shù);· 每個步驟運行的時間2.程序結(jié)果絕大多數(shù)SAS過程步和一些數(shù)據(jù)步的結(jié)果,是可以發(fā)送文件,或者打印出來,使用ODS的話,還可以將結(jié)果輸送到網(wǎng)頁中。3.SAS控制臺日志激活SAS日志后,當(dāng)系統(tǒng)初始化或結(jié)束重大錯誤時才會用到SAS控制日志。2.8 SAS程序SAS程序由多個SAS語句構(gòu)成,SAS程序中語句可以分為兩類步驟:· 數(shù)據(jù)步· 過

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論