




已閱讀5頁,還剩40頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數據步循環與轉移控制 DO語句 DO語句必須由一個END語句來結束 DO和END語句之間的這些語句稱為一個DO組 DO組可以嵌套任意次 DO語句有5類 簡單DO語句 循環DO語句 DOOVER語句 DOWHILE語句 DOUNTIL語句 簡單DO語句 語句格式DO 一些SAS語句 END 應用舉例 例8 1IF THEN語句用中DO dataa setdst bclass ifage 14thendo Height 20putname sex age end run 循環DO語句 DO組中的語句需要被重復執行時要用到循環DO語句 循環DO語句根據下標變量重復執行DO和END語句之間的語句語句格式DOindex variable specification 1 一些SAS語句 END 其中 index variable選項定義下標變量 用于控制DO組的執行方式和重復次數 下標變量包含在創建的數據集中 可以用DROP語句刪除 SPECIFICATION選項格式 Start Specification選項說明 例8 2缺省的步長為1 doI 1to1000 doI 1toy 3 doI 1toexit 例8 3起始值例句 doi 5 doi 1ton doi nto1by 1 doi k 1ton 1 doi 1tok 1 k 1ton doi 2 3 5 7 11 13 17 doi 0 1to0 9by0 1 1to10by1 20to100by10 doi saturday sunday doi 01jan99 d 25feb99 d doi 01jan99 dto 01jan2000 dby1 例句子中 起始值必須全部是數值或全部是字符常數 也可以是變量 字符常數必須用引號括起來 例8 4使用表達式選項 doi 1to10while xy doi 10to0by 1while month jan 應用舉例 例8 5用GOTO語句跳出循環體 dataa inputxy ifx ythengotoskip skip是循環體外的語句標號 y log y x yy y 20 skip ify 0thendo putx y z log x y end cards 26535 1 run 數據集a 例8 6產生指定觀測值個數的數據集 dataa don 1to100 output end run 例中 產生一個含有100個觀測值的數據集 例8 7自然數求和 dataa t 0 don 1to100 t t n output end run 例中 求1到100的自然數之和 DOOVER語句 DOOVER語句對隱含下標數組元素執行DO組里的語句 語句格式DOOVERarray name 若干SAS語句 END 其中 選項array name規定一個隱含下標數組 應用舉例 例8 10隱含數組的所有元素乘以100 datatest inputsc01 sc05 arrayssc01 sc05 doovers 等價于do i 1to5 s s 100 end cards 95 88 99 77 56 run DOWHILE語句 DOWHILE語句使得當條件成立時重復地執行DO組中的語句 語句格式DOWHILE expression 選項expression規定任一有效表達式 應用舉例 例8 11當N值小于5時重復執行DO組中的語句 dataa n 0 dowhile nlt5 putn n 1 end run DOUNTIL語句 有條件地執行DO組中的語句 語句格式DOUNTIL expression 其中 選項expression規定任一有效表達式 應用舉例 例8 12重復循環直到n 5時停止 dataa n 0 dountil n 5 putn n 1 end run END語句 END語句是組成DO組或SELECT組的最后一個語句 語句格式END 應用舉例 DO 若干個SAS語句 END SELECT expression When expression SAS語句 OtherwiseSAS語句 END SELECT語句 SELECT語句選擇執行SAS語句 語句格式SELECT WHEN when expression 1 statement statement END 選項說明 應用舉例 例8 13有SELECT表達式的SELECT語句 dataa setdst bclass obs n x uniform 0 select obs when 1 x x 10 when 2 4 6 when 3 5 7 13 15 17 x x 100 otherwisex 1 end run 例中 根據OBS來計算新變量X的值 當OBS為1時 執行x x 10 當OBS為2 4 6時 X值不變 當OBS為3 5 7 13 15 17時 執行X X 100 OBS為其它值時 執行x 1 例8 14沒有SELECT表達式的SELECT語句 data null domon jan feb mar apr may jun jul aug sep select when monin jun jul aug put summer mon when monin mar apr may put spring mon otherwiseput fallorwinter mon end end run 361data null 362domon jan feb mar apr may jun jul aug sep 363select 364when monin jun jul aug put summer mon 365when monin mar apr may put spring mon 366otherwiseput fallorwinter mon 367end 368end 369run fallorwintermon janfallorwintermon febspringmon marspringmon aprspringmon maysummermon junsummermon julsummermon augfallorwintermon sepNOTE DATA語句 所用時間 總處理時間 實際時間0 03秒CPU時間0 01秒 例8 15SELECT組的正確及錯誤用法舉例 select x when x 2 put two 錯誤用法 end select x when 2 put two 正確用法 end select when x 2 put two 正確用法 end run 例中 后兩個程序的效果相同 IF語句 IF語句的兩種類型 條件IF語句 含有一個THEN子句或ELSE子句 子集IF語句 沒有子句 IF THEN與IF THEN ELSE語句表達式為真時執行THEN后面的語句 表達式為假執行ELSE后面的語句 語句格式 IFexpressionTHENexpression 子集IF語句 語句格式 IFexpression 其中 expression是任意有效的表達式 如果表達式真的 SAS語句對正被創建的觀測繼續執行DATA步的語句 如果表達式是假的 SAS立即返回到DATA步的開始對其他觀測執行 例8 17應用舉例 dataa setResDat Idx000001 if n 100 run 例中 選擇前99條觀測值 GOTO語句與語句標號 GOTO語句使SAS跳到本程序步帶有標號的語句繼續往下執行 GOTO語句和指定的目標語句必須在同一DATA步 GOTO語句語句格式 GOTOlabel GOTOlabel Label選項規定語句標號來指示GOTO的目標 例8 18應用舉例 dataa inputx if1 x 5thengotook putx count 1 ok sumx x cards 1272122422 run 例中 COUNT僅對大于5的數計數 SUMX X對每個觀測都執行 dataa inputx if1 x 5thengotook putx count 1 return ok sumx x cards 1272122422 run 例中 COUNT僅對大于5的數計數 SUMX X僅對X在1和5之間的那些觀測執行 例8 19上面兩例中用DO END語句替代GOTO語句 dataa inputx ifx5thendo putx count 1 end sum x cards 1272122422 dataa inputx ifx5thendo putx count 1 end elsesumx x cards 1272122422 語句標號 語句標號給出GOTO LINK FILE語句中的選項HEADER 或在INFILE語句中選項EOF 的位置 語句格式 LABEL statement LINK語句 LINK語句告訴SAS系統立即轉到由LINK語句指示的語句標號 并從那里繼續執行直到一個RETURN語句 RETURN語句讓SAS立即返回到LINK語句后面的那個語句并從那里繼續執行 LINK語句和語句標號所在的目標語句必須在同一個DATA步 語句格式LINKlabel 例8 20執行一組語句 databydro inputtype wdstation labeltype stationtype wd depthtowater elev iftype aluy thenlinkcalcu year 1985 return calcu ifstation site 1 thenelev 6650 wd ifstation site 2 thenelev 5500 wd return 返回到link語句下面的year 1985 語句 cards aluv523site 1uppa234site 2aluy666site 2 RETURN語句 RETURN語句告訴SAS系統在DATA步當前位置上停止執行語句 返回到一個預定位置上繼續執行 語句格式RETURN RETURN語句的作用 在LINK語句后面 RETURN語句讓SAS系統立即返回到LINK后面的語句 并繼續往下執行 在FILE語句的選項HEADER 中 RETURN語句讓SAS系統立即返回到開始新頁之前執行的最后一個語句后面的語句 并繼續執行 在DATA步的其它地方 RETURN語句讓SAS系統返回到DATA步開頭 例8 23讓SAS系統返回到DATA步開頭 datasurvey inputxyz ifx ythenreturn x y z a x 2 cards 123334567889 例中 當X Y時 RETURN語句被執行 SAS系統添加這個觀測到數據集SURVEY 并返回到DATA步的開頭 IF語句后面的二個賦值語句沒有被執行 CONTINUE語句 CONTINUE語句停止當前的這次循環過程 繼續進行下一次循環 語句格式 CONTINUE 例8 25CONTINUE語句停止當前的循環過程 繼續進行下一次循環 dataa doi 1to5 inputname idnostatus ifstatus PT thencontinue 返回到下次循環的開頭 inputbenefits 10 output end cards 接上頁 Jones9011PTThomas876PTRichards1002FTEye DentalKelly85111PTSmith433FTHMOKelly85111PTSmith433FTHMOJones9011PTThomas876PTRichards1002FTEye Dental Run LEAVE語句 LEAVE語句停止當前DO組循環或SELECT組的處理過程 并繼續執行DO組或SELECT組后面的語句 語句格式 LEAVE 例8 26給定條件下停止DO循環的處理過程 dataweek inputname idnostartstatus dept bonu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 千圖網特邀設計師
- 家務任務:成長必修課
- Ivacaftor-13C6-VX-770-sup-13-sup-C-sub-6-sub-生命科學試劑-MCE
- 福安經濟開發區鋰電新能源配套產業小微園區項目可行性研究報告
- 2025年航空發動機維修技術革新與維修政策法規解讀報告
- 2025年環境監測物聯網在環境監測領域的物聯網技術應用與產業發展報告
- 2025年醫療器械國產化替代的關鍵技術與產業布局報告
- 多式聯運信息平臺功能優化與協同發展在物流園區運營中的應用探索報告
- 教育信息化基礎設施建設在智能教育評價系統中的應用報告
- 2025年紡織服裝行業智能化生產智能化生產設備技術升級項目實施報告
- 2024年國家知識產權局知識產權發展研究中心招聘考試真題
- 四川綿陽公開招聘社區工作者考試高頻題庫帶答案2025年
- 《水利工程造價與招投標》課件-模塊六 招投標程序
- 關于水表考試題及答案
- 2025年安全管理員安全培訓考試試題(典型題)
- 短文選詞填空12篇(新疆中考真題+中考模擬)(解析版)
- 2025年中國黃石市寫字樓行業發展前景預測及投資方向研究報告
- 初中歷史論述題必需的24個答題模版
- 新能源發展與環境保護試題及答案
- 液晶彈性體在人工肌肉領域的新進展
- 中國海洋生態環境監測市場調查研究及行業投資潛力預測報告
評論
0/150
提交評論