SAS BASE 快速入門 相當(dāng)完美版_第1頁
SAS BASE 快速入門 相當(dāng)完美版_第2頁
SAS BASE 快速入門 相當(dāng)完美版_第3頁
SAS BASE 快速入門 相當(dāng)完美版_第4頁
SAS BASE 快速入門 相當(dāng)完美版_第5頁
已閱讀5頁,還剩122頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、SAS BASE 入門 快速的哦_ 本篇概要 SAS系統(tǒng)簡介 用SAS讀取外部數(shù)據(jù)(raw file) 用SAS讀取和處理SAS數(shù)據(jù)集 SAS數(shù)據(jù)集的連接 1. SAS系統(tǒng)簡介 系統(tǒng)介紹 功能模塊 界面分布 邏輯庫介紹 建立一個新的邏輯庫 SAS數(shù)據(jù)集 SAS語句簡介 功能鍵 SAS語句執(zhí)行過程及PDV概述 1.a 系統(tǒng)介紹 全稱為Statistics Analysis System,最早由北卡 羅來納大學(xué)的兩位生物統(tǒng)計學(xué)研究生編制 1972研制出第一版,1976年成立了SAS軟件研究 所,正式推出了SAS軟件,現(xiàn)在是8.2版 是用于數(shù)據(jù)分析與決策支持的大型集成信息系統(tǒng), 統(tǒng)計分析功能是它的重

2、要組成部分和核心功能 國際上的標(biāo)準(zhǔn)軟件系統(tǒng) 1.b 功能模塊 SAS功能模塊功能模塊 BASE SAS模塊模塊 SAS/STAT-統(tǒng)計分析模塊統(tǒng)計分析模塊 SAS/GRAPH-繪圖模塊繪圖模塊 SAS/AF-交互式應(yīng)用開發(fā)模塊交互式應(yīng)用開發(fā)模塊 SAS/ACCESS-訪問外部數(shù)據(jù)模塊訪問外部數(shù)據(jù)模塊 SAS/CONNECT-分布式數(shù)據(jù)處理模塊分布式數(shù)據(jù)處理模塊 1.b 功能模塊 SAS/ASSIT-菜單驅(qū)動界面模塊菜單驅(qū)動界面模塊 SAS/INSIGHT-可視化探索工具模塊可視化探索工具模塊 SAS/ETS-經(jīng)濟(jì)計量學(xué)和時間序列分析模塊經(jīng)濟(jì)計量學(xué)和時間序列分析模塊 SAS/OR-運(yùn)籌學(xué)模塊運(yùn)籌

3、學(xué)模塊 SAS/QC-質(zhì)量控制模塊質(zhì)量控制模塊 SAS/IML-交互式矩陣程序設(shè)計語言模塊交互式矩陣程序設(shè)計語言模塊 SAS/FSP-快速數(shù)據(jù)交互式菜單系統(tǒng)模塊快速數(shù)據(jù)交互式菜單系統(tǒng)模塊 SAS/EIS-企業(yè)信息系統(tǒng)模塊企業(yè)信息系統(tǒng)模塊 SAS/CALC-電子表格模塊電子表格模塊 SAS/WA-企業(yè)級數(shù)據(jù)倉庫管理模塊企業(yè)級數(shù)據(jù)倉庫管理模塊 SAS/EM-企業(yè)級數(shù)據(jù)挖掘模塊企業(yè)級數(shù)據(jù)挖掘模塊 1.c 界面分布 菜單欄 工具欄 功能窗口 SAS窗口條 命令行 1.c 界面分布 缺省情況下的活動窗口 SAS資源管理器窗口 結(jié)果窗口 編輯器窗口(F5) 日志窗口(F6) 輸出窗口(F7) 1.c 界面

4、分布 資源管理器窗口 管理SAS邏輯庫和文件快捷方式 v 邏輯庫存貯SAS文件 v 文件快捷方式標(biāo)識外部文件 v 四個系統(tǒng)邏輯庫: n Maps n Sashelp n Sasuser n Work 1.c 界面分布 編輯器窗口 編輯器窗口用來編輯SAS 程序 編輯器能夠?qū)崿F(xiàn)如下的功能 對SAS語言的彩色編碼和語法檢查 可展開或折疊程序片段 可記錄宏 支持鍵盤快捷方式(Alt 或 Shift )加上其它鍵 多層撤消和恢復(fù) 1.c 界面分布 日志窗口 v 程序行黑色:以語句標(biāo)號開始 v 提示藍(lán)色:以NOTE開始 v 警告綠色:以WARNING開始 v 錯誤紅色:以ERROR開始 1.c 界面分布

5、 輸出窗口 輸出SAS程序的執(zhí)行結(jié)果 1.c 界面分布 結(jié)果窗口 n結(jié)果窗口可以查看和管理 SAS程序的輸出結(jié)果 1.d 邏輯庫介紹 從SAS系統(tǒng)來看,它所建立 的眾多的SAS文件可按不同 需要將其歸入若干個SAS邏 輯庫,以此來對SAS文件進(jìn) 行訪問和管理。一個SAS邏邏 輯庫輯庫就是一組SAS文件。 SAS邏輯庫也是一個邏輯概 念,在Windows環(huán)境下,一 個邏輯庫就是存放在同一個 文件夾或幾個文件夾中的一 組SAS文件。 1.d 邏輯庫介紹 從SAS系統(tǒng)內(nèi)部看,每個SAS文件也有表 明它屬性的類型,如SAS數(shù)據(jù)集的類型為 data(數(shù)據(jù)文件)或view(數(shù)據(jù)視圖), catalog等。

6、 注:catalog是sas目錄,在catalog中存放的是frame,scl, 類等AF組件以及其他sas文件。 1.d 邏輯庫介紹 Work數(shù)據(jù)庫叫做臨時庫臨時庫,存放在其中的SAS文件 叫臨時文件臨時文件,這些臨時文件當(dāng)退出SAS系統(tǒng)時會 被自動刪除。 Sasuser庫保存與用戶個人設(shè)置有關(guān)的文件,它 是永久的,即退出SAS時文件不會被刪除。 Sashelp庫保存與SAS幫助系統(tǒng)、例子有關(guān)的文 件,是永久的。 Maps SAS系統(tǒng)的四個預(yù)定義數(shù)據(jù)庫系統(tǒng)的四個預(yù)定義數(shù)據(jù)庫: 1.e 建立一個新的邏輯庫 建立一個新邏輯庫的兩種方法:建立一個新邏輯庫的兩種方法: 通過菜單 通過語句 1.e 建

7、立一個新的邏輯庫 用菜單操作用菜單操作: 在資源管理器窗口雙擊邏輯庫圖標(biāo)。選文件文件新新 建建 輸入newlib,引擎選項(xiàng)中保留默認(rèn)默認(rèn)項(xiàng),選中啟動啟動 時啟用時啟用 可以選擇其他的引擎,讀入不同格式的數(shù)據(jù)文件。 點(diǎn)擊瀏覽瀏覽按鈕,選上這個數(shù)據(jù)庫的目錄,點(diǎn)擊確確 定定。 點(diǎn)擊確定確定按鈕,在資源管理器窗口出現(xiàn)newlib圖 標(biāo)。 1.e 建立一個新的邏輯庫 1.e 建立一個新的邏輯庫 用用LIBNAME語句:語句: LIBNAME libref SAS-data-library ; 其中l(wèi)ibref 是邏輯庫名,如newlib SAS-data-library 是邏輯庫的路徑 例:例:用LIB

8、NAME語句創(chuàng)建SAS邏輯庫。 Libname fdata d:fdata; Libname stoindvfd:stoindvf; 例中,創(chuàng)建SAS邏輯庫FDATA和stoindvf。分別對 應(yīng)物理文件夾為D:fdata和D: stoindvf. 1.f SAS數(shù)據(jù)集 在SAS系統(tǒng)中,數(shù)據(jù)是以數(shù)據(jù)集的形式來存儲和處理的。 SAS數(shù)據(jù)集(SAS Datasets)可以看作由若干行和若干 列組成的表格。 SAS 數(shù)據(jù)集存放在以特殊格式存放的二進(jìn)制文件中, 用一個SAS邏輯名來使用SAS數(shù)據(jù)集,不需要知道它在 磁盤存儲的物理地址。 數(shù)據(jù)集的每一行叫做一個觀測(Observation),每列 叫做一

9、個變量(Variable)。 SAS數(shù)據(jù)集等價于關(guān)系數(shù)據(jù)庫系統(tǒng)中的一個表,SAS 數(shù)據(jù)集有時也稱作一張表。 SAS數(shù)據(jù)集后綴為.sas7bdat 1.f SAS數(shù)據(jù)集 有關(guān)有關(guān)SAS數(shù)據(jù)集命名的約定數(shù)據(jù)集命名的約定 SAS名字由英文字母、數(shù)字、下劃線組成;第一 個字符必須是字母或下劃線; 名字最多用32個字符,大寫字母和小寫字母不區(qū) 分。 SAS名中不能有空格和一些特殊字符($, # ); 系統(tǒng)保留了一些特殊的變量名,如_N_, _ERROR_等。 1.f SAS數(shù)據(jù)集 nSAS數(shù)據(jù)集用兩級水平名命名:數(shù)據(jù)集用兩級水平名命名: 第一級名字是SAS邏輯數(shù)據(jù)庫的庫名; 第二級是文件的名字。 例如S

10、ashlep. Class,Sashelp是數(shù)據(jù)庫的名字, 而Class則是文件本身的名字。 1.f SAS數(shù)據(jù)集 臨時數(shù)據(jù)集和永久數(shù)據(jù)集的區(qū)別:臨時數(shù)據(jù)集和永久數(shù)據(jù)集的區(qū)別: 臨時庫數(shù)據(jù)集可以使用單水平名或雙水平名; 而永久庫數(shù)據(jù)集必須使用雙水平名字來加以確認(rèn)。 例如Work. Class和Class都代表臨時庫中的文件, 而Sashlep. Class則是永久庫中的文件。 1.g SAS語句簡介 SAS語句由關(guān)鍵詞開始,分號結(jié)束。 語句中間的SAS名,過程名和運(yùn)算符等為SAS系統(tǒng)提供信息或執(zhí)行操作。 例3.1 有效的SAS語句。 data data1; put name $ 8.; for

11、mat date yymmdd10.; proc means data=fdata.class; infile d:fdataclass.txt; do I=1 to 100; X=Y+1; SUMX+X; end; run; 1.g SAS語句簡介 SAS語句格式: KEYWORD parameteroptions; 關(guān)鍵詞關(guān)鍵詞 參數(shù) 選項(xiàng); 其中: 粗體-必須按顯示形式書寫的關(guān)鍵詞; 白正體-用戶提供的信息; -括號內(nèi)的信息可選; |-任選。 參數(shù)PARAMETER不是任選項(xiàng),不用括號,OPTIONS是選項(xiàng)關(guān)鍵詞。 1.g SAS語句簡介 數(shù)據(jù)步與過程步 一組SAS語句組成一個SAS程序

12、。 SAS程序中的語句可分為兩類步驟: 數(shù)據(jù)步; 過程步。 所有SAS程序均有數(shù)據(jù)步和過程步兩大模塊構(gòu)成。 1.g SAS語句簡介 數(shù)據(jù)步 數(shù)據(jù)步編譯、創(chuàng)建和修改SAS數(shù)據(jù)集或文本文件、讀入源數(shù)據(jù)文件和SAS 數(shù)據(jù)集。 數(shù)據(jù)步以DATA語句開始。 例3.2 數(shù)據(jù)步創(chuàng)建SAS數(shù)據(jù)集。 data A; set fdata.a1a0001; keep date clpr; run; 例 中 , 由 數(shù) 據(jù) 步 產(chǎn) 生 數(shù) 據(jù) 集 A , 數(shù) 據(jù) 來 源 于 S A S 數(shù) 據(jù) 集 FDATA.A1A0001(上證指數(shù))的日期DATE和收盤價CLPR。 1.g SAS語句簡介 過程步 過程步面向SAS

13、數(shù)據(jù)集,完成對數(shù)據(jù)集的加工整理、分析和呈現(xiàn)等功能。 過程步以PROC語句開始。 例3.3 應(yīng)用統(tǒng)計量均值過程。 proc means data=fdata.a1a0001; var clpr; output out=M mean=CLPR_M; run; 例中,過程步調(diào)用SAS的MEANS過程,對數(shù)據(jù)集FDATA.A1A0001(上證指數(shù)) 中的收盤價CLPR求得均值CLPR_M,并將產(chǎn)生的結(jié)果存貯在數(shù)據(jù)集M中。 1.g SAS語句簡介 一般特點(diǎn):一般特點(diǎn): 語句用分號結(jié)束 不區(qū)分大小寫 空格、空行一般可以任意放置 SAS的變量分字符型和數(shù)值型 字符型變量缺失時,變量為空 數(shù)值型變量缺失時,變

14、量為. SAS程序由數(shù)據(jù)步和過程步構(gòu)成 1.h 功能鍵 F9調(diào)出功能鍵窗口。 例如F3、F8是提交SAS程序 F4是調(diào)用剛提交的程序 F5、F6和F7分別是調(diào)用編輯器窗口、日志 窗口和輸出窗口。 CLTE是清除窗口中的內(nèi)容 1.i SAS語句執(zhí)行過程及PDV概述 當(dāng)一個DATA步被提交時,提交的語句先被編譯成 SAS內(nèi)部編碼,以在PDV區(qū)域搭建臨時庫。PDV (Program Data Vector),是存儲DATA步運(yùn)行過程中每 一個變量的記憶區(qū)。在程序執(zhí)行過程中,觀測值在PDV中 生成,然后通過output語句輸出到SAS數(shù)據(jù)集。DATA步 每次只處理一個觀測值,重復(fù)執(zhí)行,直到最后一個觀測

15、處 理完,執(zhí)行完成。在默認(rèn)情況下,每次DATA步從頭開始 執(zhí)行時,PDV會被清空。 2.用SAS讀取外部數(shù)據(jù)(raw file) 通過SAS語句或向?qū)?,可以方便地?dǎo)入或 導(dǎo)出多種類型的外部數(shù)據(jù)文件,如xls,csv, txt,dbf等。 本章主要介紹如何用data步導(dǎo)入非固定格式 的也即自由格式的外部數(shù)據(jù)。 2. 用SAS讀取外部數(shù)據(jù)(raw file) Data ; Infile fileref DLM=characters ; Input var1$ : format var2 ; Run; 2. 用SAS讀取外部數(shù)據(jù)(raw file) Fileref:導(dǎo)入文件路徑及名稱 DLM:分割符

16、,默認(rèn)為空格。 Missover:允許空值。 Firstobs:從第x行讀取數(shù)據(jù) k:從第k位開始讀數(shù)據(jù)。 $:定義的變量為字符型。 Format:定義變量格式。 M-n:讀取m-n位。 :停頓符。 :繼續(xù)讀取。 /:換行符。 注:注: 以從左到右的順序讀取數(shù)據(jù)。 所有變量默認(rèn)長度為8位,如讀入數(shù)據(jù)超出8位,需在之前定義 2. 用SAS讀取外部數(shù)據(jù)(raw file) 例例1:讀入以空格分割的數(shù)據(jù)。:讀入以空格分割的數(shù)據(jù)。 2. 用SAS讀取外部數(shù)據(jù)(raw file) 例例2:讀入以冒號分割的數(shù)據(jù):讀入以冒號分割的數(shù)據(jù) 2. 用SAS讀取外部數(shù)據(jù)(raw file) 輸出為: 2. 用SAS

17、讀取外部數(shù)據(jù)(raw file) 例例3:改變相關(guān)變量的格式:改變相關(guān)變量的格式: 2. 用SAS讀取外部數(shù)據(jù)(raw file) 輸出為: 2. 用SAS讀取外部數(shù)據(jù)(raw file) 例例4:用:用missover讀取數(shù)據(jù)讀取數(shù)據(jù) 2. 用SAS讀取外部數(shù)據(jù)(raw file) 輸出為:輸出為: 2. 用SAS讀取外部數(shù)據(jù)(raw file) 如果不用missover: 2. 用SAS讀取外部數(shù)據(jù)(raw file) 輸出為:輸出為: 2. 用SAS讀取外部數(shù)據(jù)(raw file) 例例5:用換行符:用換行符/讀入數(shù)據(jù)讀入數(shù)據(jù) 2. 用SAS讀取外部數(shù)據(jù)(raw file) 輸出為: 2

18、. 用SAS讀取外部數(shù)據(jù)(raw file) 例6: ,的運(yùn)用的運(yùn)用 2. 用SAS讀取外部數(shù)據(jù)(raw file) 2. 用SAS讀取外部數(shù)據(jù)(raw file) 輸出為:輸出為: 注:注: 為停頓符,在本例中,讀完第8位后停頓,判斷后繼續(xù)讀取本行數(shù)據(jù),而不換行。 2. 用SAS讀取外部數(shù)據(jù)(raw file) 例例7:運(yùn)用:運(yùn)用 2. 用SAS讀取外部數(shù)據(jù)(raw file) 輸出為:輸出為: 3.用SAS讀取和處理SAS數(shù)據(jù)集 Set語句 DATA步的一般選項(xiàng) 函數(shù)的介紹 控制語句 循環(huán) 條件 3.a Set語句 SET語句可以從一個已經(jīng)存在的SAS數(shù)據(jù)集創(chuàng)建新的數(shù)據(jù)集, 它的一般形式:

19、 DATA new; SET old; 其他SAS語句; RUN; 使用了SET語句后: 所有SET語句指定數(shù)據(jù)集中的變量自動被讀入PDV(除非 使用了SET語句的一些特殊選項(xiàng)如KEEP=和DORP=選項(xiàng)) 3.b DATA步的一般選項(xiàng) by Keep/Drop Rename Where Format Label Retain Array 3.b DATA步的一般選項(xiàng) By選項(xiàng):選項(xiàng): 一般在data步的set,merge,modify和update之后出 現(xiàn),用于分類不同的觀測。 語法: BY variable-1 . . . variable-n ; 3.b DATA步的一般選項(xiàng) By選項(xiàng)

20、例題: data _null_; set sorted_class; by height groupformat; if first.height then put Shortest in height measures height:best12.; run; 3.b DATA步的一般選項(xiàng) 當(dāng)by跟在set之后時: 數(shù)據(jù)需要事先排序 每個by分類之后的第一個和最后一個觀測會被自 動創(chuàng)造。 3.b DATA步的一般選項(xiàng) Data temp; Set salary; By dept; Run; 上述語句中,PDV內(nèi)會生成出first.dept,last.dept兩個臨時 變量: first.de

21、pt:分類后的第一個觀測時,值為1,其余為0。 last.dept:分類后的最后一個觀測時,值為1,其余為0。 3.b DATA步的一般選項(xiàng) 3.b DATA步的一般選項(xiàng) 輸出為: 注:注:_n_,first.dept和和last.dept在實(shí)際輸出中在實(shí)際輸出中并不存在并不存在,而只存在于,而只存在于 PDV。 3.b DATA步的一般選項(xiàng) KEEP/DROP選項(xiàng):選項(xiàng): 控制哪些變量將被寫入將要創(chuàng)建的數(shù)據(jù)集。 語法: KEEP/DROP variable-list; 3.b DATA步的一般選項(xiàng) KEEP/DROP選項(xiàng):選項(xiàng): DROP=和KEEP=選項(xiàng)有兩種用法: 用于輸入數(shù)據(jù)集(用作S

22、ET語句的選項(xiàng))控制哪些變量被寫入 PDV 用于輸出數(shù)據(jù)集(用作DATA語句的選項(xiàng))控制PDV中的哪些變量 被寫入新創(chuàng)建的數(shù)據(jù)集 3.b DATA步的一般選項(xiàng) Keep例題: keep name address city state zip phone; keep rep1-rep5; 3.b DATA步的一般選項(xiàng) RENAME 選項(xiàng):選項(xiàng): 重新命名變量名。 語法: RENAME old-name-1=new-name-1 . . . ; 3.b DATA步的一般選項(xiàng) Rename例題: data market(keep=newdept newaccnt items volume); ren

23、ame olddept=newdept oldaccnt=newaccnt; set sales; if oldaccnt5000; run; 3.b DATA步的一般選項(xiàng) WHERE選項(xiàng):選項(xiàng): 選出選出SAS數(shù)據(jù)集中符合條件的觀測。數(shù)據(jù)集中符合條件的觀測。 語法:語法: WHERE where-expression-1 ; 邏輯符可以是:AND, AND NOT, OR, 或 OR NOT. 3.b DATA步的一般選項(xiàng) Where例題: data testmacs; set customer; where substr(name,1,3)=Mac and (city=Charleston

24、 or city=Atlanta); run; 3.b DATA步的一般選項(xiàng) Format選項(xiàng):選項(xiàng): 改變變量的格式。 語法: FORMAT variable-1 ; FORMAT variable-1 format ; FORMAT variable-1 format variable-1 format; 3.b DATA步的一般選項(xiàng) Format例題: data tstfmt; format W $3. Y 10.3 default=8.2 $8.; W=Good morning.; X=12.1; Y=13.2; Z=Howdy-doody; put W/X/Y/Z; run; -+-

25、1-+-2 Goo 12.10 3.200 Howdy-do 3.b DATA步的一般選項(xiàng) Label選項(xiàng):選項(xiàng): 語法: LABEL variable-1=label-1 . . . ; 3.b DATA步的一般選項(xiàng) Label例題: label score1=Grade on April 1 Test score2=Grade on May 1 Test; 3.b DATA步的一般選項(xiàng) Retain選項(xiàng):選項(xiàng): retain所指定變量的觀測在一次data步運(yùn)行完成后在PDV 內(nèi)不會被清空。 3.b DATA步的一般選項(xiàng) data class.bestscores; drop grade;

26、set class.allscores; by id; retain highest;if first.id then highest=.; highest=max(highest,grade); if last.id then output; run; Retain例題: data allscores; input id$ grade ; cards; 1 70 1 75 1 80 2 60 2 65 2 80 2 95 3 74 3 53 4 80 4 90 4 95 4 100 ; run; 輸出: Id highest n 80 n 95 n 74 1 100 3.b DATA步的一般

27、選項(xiàng) Array選項(xiàng):選項(xiàng): 將一系列相似的變量定義為一個數(shù)組。 語法: ARRAY array-name subscript ; 3.b DATA步的一般選項(xiàng) Array例題: array rain 5 janr febr marr aprr mayr; array days7 d1-d7; array test4 t1 t2 t3 t4 (90 80 70 70); array test2* a1 a2 a3 (a,b,c); array new2:5 green jacobs denato fetzer; 3.c 函數(shù)的介紹 n數(shù)值型變量的處理數(shù)值型變量的處理 切斷函數(shù)切斷函數(shù) 統(tǒng)計函數(shù)

28、統(tǒng)計函數(shù) 日期函數(shù)日期函數(shù) 隨機(jī)函數(shù)隨機(jī)函數(shù) n字符型變量的處理字符型變量的處理 n字符型變量與數(shù)值型變量的轉(zhuǎn)換字符型變量與數(shù)值型變量的轉(zhuǎn)換 3.c. 數(shù)值型變量的處理 切斷函數(shù)切斷函數(shù): Round:返回四舍五入后的數(shù)值。 Ceil:返回大于等于該值的最小整數(shù)。 Int:返回整數(shù)部分。 3.c. 數(shù)值型變量的處理 輸出為: 例例1: 3.c. 數(shù)值型變量的處理 統(tǒng)計函數(shù):統(tǒng)計函數(shù): Sum:求和。 Mean:求均值。 Min:求最小值。 Max:求最大值。 Var:求方差。 Std:求標(biāo)準(zhǔn)差。 注: 變量無需排序。 無視缺失值。 以上統(tǒng)計均為橫向數(shù)值統(tǒng)計 3.c. 數(shù)值型變量的處理 例:例:

29、 3.c. 數(shù)值型變量的處理 輸出為: 3.c. 數(shù)值型變量的處理 日期函數(shù):日期函數(shù): 3.c. 數(shù)值型變量的處理 隨機(jī)函數(shù):隨機(jī)函數(shù): Ranuni(seed); 3.c. 字符型變量的處理: Index (a,b):返回變量b出現(xiàn)在變量a中位置的值。 若b不在a中,則返回0。 Scan (string ,n):返回string中 以delimiter分割的第n部分的字符。 若不指定符號,則默認(rèn)為:blank . ( + - / , % | Substr (variable, position):返回 variable中第position開始length位字符。 若length缺省,則返回

30、position后的所有字符。 3.c. 字符型變量的處理: Trim:刪除字符間空格。 Upcase:所有字符大寫。 Lowcase:所有字符小寫。 |,!,!:連接兩個字符變量。 3.c. 字符型變量的處理: 3.c. 字符型變量的處理: 3.c. 字符型變量的處理: 結(jié)果:結(jié)果: 3.c. 字符型變量與數(shù)值型變量的轉(zhuǎn)換: Input:字符型轉(zhuǎn)為數(shù)值型。 注:在某些情況下純數(shù)值的字符型變量可以自動轉(zhuǎn)化為數(shù)值 型變量 3.c. 字符型變量與數(shù)值型變量的轉(zhuǎn)換: 例例1:input的運(yùn)用的運(yùn)用 3.c. 字符型變量與數(shù)值型變量的轉(zhuǎn)換: 例例2:字符型變量自動轉(zhuǎn)換為數(shù)值型:字符型變量自動轉(zhuǎn)換為數(shù)值

31、型 3.c. 字符型變量與數(shù)值型變量的轉(zhuǎn)換: Put:數(shù)值型轉(zhuǎn)為字符型。 3.c. 字符型變量與數(shù)值型變量的轉(zhuǎn)換: 3.c. 字符型變量與數(shù)值型變量的轉(zhuǎn)換: 3.d 控制語句 n循環(huán) n條件 3.d. 循環(huán) 循環(huán):循環(huán): Do 循環(huán): 3.d. 循環(huán) Do循環(huán)的作用: 進(jìn)行重復(fù)的計算 生成數(shù)據(jù) 減少冗余的代碼 讀取數(shù)據(jù) 有條件的執(zhí)行sas代碼 3.d. 循環(huán) Do循環(huán)的語法: DO index-variable =start TO stop BY increase; END; 注:by可省略,缺省為遞進(jìn)1。 DO index-variable =value1,value2,value3; EN

32、D; 注:value可以是字符或數(shù)值。 3.d. 循環(huán) DO WHILE(expression); END; 當(dāng)expression正確時,進(jìn)入循環(huán)語句。 在每次循環(huán)開始之前進(jìn)行判斷。 如果expression開始就是錯誤的,循環(huán)不會執(zhí)行 3.d. 循環(huán) DO UNTIL(expression); END; 循環(huán)語句將被執(zhí)行,直到expression正確。 在每次循環(huán)之后再進(jìn)行判斷。 循環(huán)語句至少會被執(zhí)行一遍。 3.d. 循環(huán) 多條件判斷:多條件判斷: DO index-variable =start TO stop BY increase WHILE|UNTIL(expression); E

33、ND; 3.d. 循環(huán) 例:例: 結(jié)果:結(jié)果:capital=157,086.05。 3.d. 循環(huán) 循環(huán)嵌套:循環(huán)嵌套: 每個循環(huán)要有不同的循環(huán)變量。 確保每個DO有一個END相對應(yīng)。 例:例: 3.d. 循環(huán) 輸出為:輸出為: 3.d. 循環(huán) SAS的比較操作符: 操 作 符 符 號 意義 LT大于(greater than) EQ=等于(equal) LE=大于等于 (greater equal) NE = 不等于(not equal) 3.d. 循環(huán) SAS的邏輯操作: 操作符符號意義 AND ELSE statement; 其中:expression:SAS條件表達(dá)式 stateme

34、nt:任何可執(zhí)行的語句 注:ELSE語句不是必須的 3.d. 條件 例: if status=OK and type=3 then count+1; if age ne agecheck then delete; data region; input city $ 1-30; if city=New York City or city=Miami then region=ATLANTIC COAST; else if city=San Francisco or city=Los Angeles then region=PACIFIC COAST; datalines; .more data lines. ; 3.d. 條件 在條件分支中可以使用DO和END語句在每一 個條件下執(zhí)行一組語句,一般形式: IF expression THEN DO; statement; END; ELSE DO; statement; END

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論