數(shù)據(jù)步循環(huán)與轉(zhuǎn)移控制.pptx_第1頁
數(shù)據(jù)步循環(huán)與轉(zhuǎn)移控制.pptx_第2頁
數(shù)據(jù)步循環(huán)與轉(zhuǎn)移控制.pptx_第3頁
數(shù)據(jù)步循環(huán)與轉(zhuǎn)移控制.pptx_第4頁
數(shù)據(jù)步循環(huán)與轉(zhuǎn)移控制.pptx_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)步循環(huán)與轉(zhuǎn)移控制 DO語句 DO語句必須由一個(gè)END語句來結(jié)束 DO和END語句之間的這些語句稱為一個(gè)DO組 DO組可以嵌套任意次 DO語句有5類 簡單DO語句 循環(huán)DO語句 DOOVER語句 DOWHILE語句 DOUNTIL語句 簡單DO語句 語句格式DO 一些SAS語句 END 應(yīng)用舉例 例8 1IF THEN語句用中DO dataa setdst bclass ifage 14thendo Height 20putname sex age end run 循環(huán)DO語句 DO組中的語句需要被重復(fù)執(zhí)行時(shí)要用到循環(huán)DO語句 循環(huán)DO語句根據(jù)下標(biāo)變量重復(fù)執(zhí)行DO和END語句之間的語句語句格式DOindex variable specification 1 一些SAS語句 END 其中 index variable選項(xiàng)定義下標(biāo)變量 用于控制DO組的執(zhí)行方式和重復(fù)次數(shù) 下標(biāo)變量包含在創(chuàng)建的數(shù)據(jù)集中 可以用DROP語句刪除 SPECIFICATION選項(xiàng)格式 Start Specification選項(xiàng)說明 例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 例句子中 起始值必須全部是數(shù)值或全部是字符常數(shù) 也可以是變量 字符常數(shù)必須用引號括起來 例8 4使用表達(dá)式選項(xiàng) doi 1to10while xy doi 10to0by 1while month jan 應(yīng)用舉例 例8 5用GOTO語句跳出循環(huán)體 dataa inputxy ifx ythengotoskip skip是循環(huán)體外的語句標(biāo)號 y log y x yy y 20 skip ify 0thendo putx y z log x y end cards 26535 1 run 數(shù)據(jù)集a 例8 6產(chǎn)生指定觀測值個(gè)數(shù)的數(shù)據(jù)集 dataa don 1to100 output end run 例中 產(chǎn)生一個(gè)含有100個(gè)觀測值的數(shù)據(jù)集 例8 7自然數(shù)求和 dataa t 0 don 1to100 t t n output end run 例中 求1到100的自然數(shù)之和 DOOVER語句 DOOVER語句對隱含下標(biāo)數(shù)組元素執(zhí)行DO組里的語句 語句格式DOOVERarray name 若干SAS語句 END 其中 選項(xiàng)array name規(guī)定一個(gè)隱含下標(biāo)數(shù)組 應(yīng)用舉例 例8 10隱含數(shù)組的所有元素乘以100 datatest inputsc01 sc05 arrayssc01 sc05 doovers 等價(jià)于do i 1to5 s s 100 end cards 95 88 99 77 56 run DOWHILE語句 DOWHILE語句使得當(dāng)條件成立時(shí)重復(fù)地執(zhí)行DO組中的語句 語句格式DOWHILE expression 選項(xiàng)expression規(guī)定任一有效表達(dá)式 應(yīng)用舉例 例8 11當(dāng)N值小于5時(shí)重復(fù)執(zhí)行DO組中的語句 dataa n 0 dowhile nlt5 putn n 1 end run DOUNTIL語句 有條件地執(zhí)行DO組中的語句 語句格式DOUNTIL expression 其中 選項(xiàng)expression規(guī)定任一有效表達(dá)式 應(yīng)用舉例 例8 12重復(fù)循環(huán)直到n 5時(shí)停止 dataa n 0 dountil n 5 putn n 1 end run END語句 END語句是組成DO組或SELECT組的最后一個(gè)語句 語句格式END 應(yīng)用舉例 DO 若干個(gè)SAS語句 END SELECT expression When expression SAS語句 OtherwiseSAS語句 END SELECT語句 SELECT語句選擇執(zhí)行SAS語句 語句格式SELECT WHEN when expression 1 statement statement END 選項(xiàng)說明 應(yīng)用舉例 例8 13有SELECT表達(dá)式的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 例中 根據(jù)OBS來計(jì)算新變量X的值 當(dāng)OBS為1時(shí) 執(zhí)行x x 10 當(dāng)OBS為2 4 6時(shí) X值不變 當(dāng)OBS為3 5 7 13 15 17時(shí) 執(zhí)行X X 100 OBS為其它值時(shí) 執(zhí)行x 1 例8 14沒有SELECT表達(dá)式的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語句 所用時(shí)間 總處理時(shí)間 實(shí)際時(shí)間0 03秒CPU時(shí)間0 01秒 例8 15SELECT組的正確及錯(cuò)誤用法舉例 select x when x 2 put two 錯(cuò)誤用法 end select x when 2 put two 正確用法 end select when x 2 put two 正確用法 end run 例中 后兩個(gè)程序的效果相同 IF語句 IF語句的兩種類型 條件IF語句 含有一個(gè)THEN子句或ELSE子句 子集IF語句 沒有子句 IF THEN與IF THEN ELSE語句表達(dá)式為真時(shí)執(zhí)行THEN后面的語句 表達(dá)式為假執(zhí)行ELSE后面的語句 語句格式 IFexpressionTHENexpression 子集IF語句 語句格式 IFexpression 其中 expression是任意有效的表達(dá)式 如果表達(dá)式真的 SAS語句對正被創(chuàng)建的觀測繼續(xù)執(zhí)行DATA步的語句 如果表達(dá)式是假的 SAS立即返回到DATA步的開始對其他觀測執(zhí)行 例8 17應(yīng)用舉例 dataa setResDat Idx000001 if n 100 run 例中 選擇前99條觀測值 GOTO語句與語句標(biāo)號 GOTO語句使SAS跳到本程序步帶有標(biāo)號的語句繼續(xù)往下執(zhí)行 GOTO語句和指定的目標(biāo)語句必須在同一DATA步 GOTO語句語句格式 GOTOlabel GOTOlabel Label選項(xiàng)規(guī)定語句標(biāo)號來指示GOTO的目標(biāo) 例8 18應(yīng)用舉例 dataa inputx if1 x 5thengotook putx count 1 ok sumx x cards 1272122422 run 例中 COUNT僅對大于5的數(shù)計(jì)數(shù) SUMX X對每個(gè)觀測都執(zhí)行 dataa inputx if1 x 5thengotook putx count 1 return ok sumx x cards 1272122422 run 例中 COUNT僅對大于5的數(shù)計(jì)數(shù) SUMX X僅對X在1和5之間的那些觀測執(zhí)行 例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 語句標(biāo)號 語句標(biāo)號給出GOTO LINK FILE語句中的選項(xiàng)HEADER 或在INFILE語句中選項(xiàng)EOF 的位置 語句格式 LABEL statement LINK語句 LINK語句告訴SAS系統(tǒng)立即轉(zhuǎn)到由LINK語句指示的語句標(biāo)號 并從那里繼續(xù)執(zhí)行直到一個(gè)RETURN語句 RETURN語句讓SAS立即返回到LINK語句后面的那個(gè)語句并從那里繼續(xù)執(zhí)行 LINK語句和語句標(biāo)號所在的目標(biāo)語句必須在同一個(gè)DATA步 語句格式LINKlabel 例8 20執(zhí)行一組語句 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系統(tǒng)在DATA步當(dāng)前位置上停止執(zhí)行語句 返回到一個(gè)預(yù)定位置上繼續(xù)執(zhí)行 語句格式RETURN RETURN語句的作用 在LINK語句后面 RETURN語句讓SAS系統(tǒng)立即返回到LINK后面的語句 并繼續(xù)往下執(zhí)行 在FILE語句的選項(xiàng)HEADER 中 RETURN語句讓SAS系統(tǒng)立即返回到開始新頁之前執(zhí)行的最后一個(gè)語句后面的語句 并繼續(xù)執(zhí)行 在DATA步的其它地方 RETURN語句讓SAS系統(tǒng)返回到DATA步開頭 例8 23讓SAS系統(tǒng)返回到DATA步開頭 datasurvey inputxyz ifx ythenreturn x y z a x 2 cards 123334567889 例中 當(dāng)X Y時(shí) RETURN語句被執(zhí)行 SAS系統(tǒng)添加這個(gè)觀測到數(shù)據(jù)集SURVEY 并返回到DATA步的開頭 IF語句后面的二個(gè)賦值語句沒有被執(zhí)行 CONTINUE語句 CONTINUE語句停止當(dāng)前的這次循環(huán)過程 繼續(xù)進(jìn)行下一次循環(huán) 語句格式 CONTINUE 例8 25CONTINUE語句停止當(dāng)前的循環(huán)過程 繼續(xù)進(jìn)行下一次循環(huán) dataa doi 1to5 inputname idnostatus ifstatus PT thencontinue 返回到下次循環(huán)的開頭 inputbenefits 10 output end cards 接上頁 Jones9011PTThomas876PTRichards1002FTEye DentalKelly85111PTSmith433FTHMOKelly85111PTSmith433FTHMOJones9011PTThomas876PTRichards1002FTEye Dental Run LEAVE語句 LEAVE語句停止當(dāng)前DO組循環(huán)或SELECT組的處理過程 并繼續(xù)執(zhí)行DO組或SELECT組后面的語句 語句格式 LEAVE 例8 26給定條件下停止DO循環(huán)的處理過程 dataweek inputname idnostartstatus dept bonu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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

提交評論