SAS入门基础(select结构和循环结构)
生活随笔
收集整理的這篇文章主要介紹了
SAS入门基础(select结构和循环结构)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.SELECT結構
格式一:SELECT (選擇表達式);WHEN(值列表) 語句;WHEN(值列表) 語句;……OTHERWISE 語句;END; 功能及流程:執行SELECT結構時,先計算出選擇表達式和值列表中的所有值,然后把選擇表達式值由前向后與值列表中的值相比,發現相等值則執行對應的語句,然后退出SELECT結構(不再查看后面的值列表)。如果選擇表達式的值不等于任何值列表中的值則執行OTHERWISE對應的語句,這種情況下沒有OTHERWISE語句會出錯。 例:DATA ;INPUT month $ @@;put month @;SELECT(month);WHEN('Feb', 'Mar', 'Apr') put '春天';WHEN('May', 'Jun', 'Jul') put '夏天';OTHERWISE put '秋天或冬天';END;CARDS;Mar Jun oct;run;格式二:
SELECT; WHEN(條件) 語句; WHEN(條件) 語句; …… OTHERWISE 語句; END; 這種SELECT語句沒有選擇表達式,而是在每一個WHEN語句指定一個條件(邏輯表達式), 執行第一個滿足條件的WHEN后的語句。如果所有條件都不滿足則執行OTHERWISE后的語句。 例:data;input age @@;put age @;SELECT;WHEN(age<=12) put '少年';WHEN(age<35) put '青年';OTHERWISE put '中老年';END;cards;10 30 50;run;2.循環結構
⒈計數DO循環 ⒉當型循環 ⒊直到型循環 ⒈計數DO循環計數DO循環的格式:DO 計數變量 = 起始值 TO 結束值 BY 步長;循環體語句……END;這種結構與BASIC中計數循環很類似,功能也相當,只是在SAS中是以關鍵字DO開頭(不是FOR),另外步長用BY引導(不是STEP),而結構以END結束(而不是NEXT)。其功能與流程:程序先把計數變量賦值為起始值,如果此值小于等于結束值則執行循環體語句,然后把計數變量加上步長,再判斷它是否小于等于結束值,如果是則繼續執行循環體,直到計數變量的值大于結束值為止。上述結構中“BY 步長”可以省略,這時步長為1。如果步長取負值,則繼續循環的條件是計數變量大于等于結束值。計數DO循環舉例:data;sum=0;DO i = 1 TO 10 ;sum +i;/*此處sum+i等價于sum=sum+i*/END;PUT sum=;run;在循環體中可以用LEAVE語句跳出循環(功能與C語言的break語句相當),如:data;n=13;flag=1;DO i = 2 TO n/2 ;if mod(n,i)=0 then do;flag=0;leave;end;END;if flag=1 thenput n "是素數";elseput n "不是素數";run;⒉當型循環當型循環的格式:DO WHILE(循環繼續條件);循環體語句……END;程序先判斷循環繼續條件是否成立,成立時執行循環體語句,再判斷循環繼續條件,如此重復,直到循環繼續條件不再成立。data;x=243;y=63;z=mod(x,y);DO WHILE (z ^= 0);x=y;y=z;z= mod(x,y);END;put y;run; ⒊直到型循環直到型循環的格式:DO UNTIL (循環退出條件);循環體語句……END;程序先判斷循環退出條件是否成立,成立則結束循環,否則繼續。例:data;n=0;do until (n>=5);n+1;put n=;end;run;總結
以上是生活随笔為你收集整理的SAS入门基础(select结构和循环结构)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 栅栏密码怎么写java程序_[CTF]栅
- 下一篇: mysql 拼接字符串查询