熱線電話:13121318867

登錄
首頁精彩閱讀Sas常用函數
Sas常用函數
2016-04-25
收藏

Sas常用函數

一、數學函數 
ABS(x) 求x的絕對值。 
MAX(x1,x2,…,xn) 求所有自變量中的最大一個。 
MIN(x1,x2,…,xn) 求所有自變量中的最小一個。 
MOD(x,y) 求x除以y的余數。 
SQRT(x) 求x的平方根。 
ROUND(x,eps) 求x按照eps指定的精度四舍五入后的結果,比如ROUND(5654.5654,0.01) 結果為5654.57,ROUND(5654.5654,10)結果為5650。 
CEIL(x) 求大于等于x的最小整數。當x為整數時就是x本身,否則為x右邊最近的整數。 
FLOOR(x) 求小于等于x的最大整數。當x為整數時就是x本身,否則為x左邊最近的整數。 
INT(x) 求x扔掉小數部分后的結果。 
FUZZ(x) 當x與其四舍五入整數值相差小于1E-12時取四舍五入。


LOG(x) 求x的自然對數。 
LOG10(x) 求x的常用對數。 
EXP(x) 指數函數 。 
SIN(x), COS(x), TAN(x) 求x的正弦、余弦、正切函數。 
ARSIN(y) 計算函數y=sin(x)在區間的反函數,y取[-1,1]間值。 
ARCOS(y) 計算函數y=cos(x)在的反函數,y取[-1,1]間值。 
ATAN(y) 計算函數y=tan(x)在 的反函數,y取間值。 
SINH(x), COSH(x), TANH(x) 雙曲正弦、余弦、正切 
ERF(x) 誤差函數 
GAMMA(x) 完全 函數 
此外還有符號函數SIGN,函數一階導數函數DIGAMMA,二階導數函數TRIGAMMA ,誤差函數余函數ERFC,函數自然對數LGAMMA,ORDINAL函數,AIRY 函數,DAIRY函數,Bessel函數JBESSEL,修正的Bessel函數IBESSEL,等等。 
二、數組函數 
數組函數計算數組的維數、上下界,有利于寫出可移植的程序。數組函數包括: 
DIM(x) 求數組x第一維的元素的個數(注意當下界為1時元素個數與上界相同,否則元素個數不一定與上界相同)。 
DIM k(x) 求數組x第k維的元素的個數。 
LBOUND(x) 求數組x第一維的下界。 
HBOUND(x) 求數組x第一維的上界。 
LBOUND k(x) 求數組x第 k維的下界。 
HBOUND k(x) 求數組x第 k維的上界。 
三、字符函數 
較重要的字符函數有: 
TRIM(s) 返回去掉字符串s的尾隨空格的結果。 
UPCASE(s) 把字符串s中所有小寫字母轉換為大寫字母后的結果。 
LOWCASE(s) 把字符串s中所有大寫字母轉換為小寫字母后的結果。 
INDEX(s,s1) 查找s1在s中出現的位置。找不到時返回0。 
RANK(s) 字符s的ASCII碼值。 
BYTE(n) 第n個ASCII碼值的對應字符。 
REPEAT(s,n) 字符表達式s重復n次。 
SUBSTR(s,p,n) 從字符串s中的第p個字符開始抽取n個字符長的子串 
TRANWRD(s,s1,s2) 從字符串s中把所有字符串s1替換成字符串s2后的結果。 
其它字符函數還有 COLLATE,COMPRESS,INDEXC,LEFT,LENGTH,REVERSE,RIGHT,SCAN ,TRANSLATE,VERIFY,COMPBL,DEQUOTE,INDEXW,QUOTE,SOUNDEX,TRIMN,INDEXW。 
四、日期和時間函數 
常用日期和時間函數有: 
MDY(m,d,yr) 生成yr年m月d日的SAS日期值 
YEAR(date) 由SAS日期值date得到年 
MONTH(date) 由SAS日期值date得到月 
DAY(date) 由SAS日期值date得到日 
WEEKDAY(date) 由SAS日期值date得到星期幾 
QTR(date) 由SAS日期值date得到季度值 
HMS(h,m,s) 由小時h、分鐘m、秒s生成SAS時間值 
DHMS(d,h,m,s) 由SAS日期值d、小時h、分鐘m、秒s生成SAS日期時間值 
DATEPART(dt) 求SAS日期時間值dt的日期部分 
INTNX(interval,from,n) 計算從from開始經過n個in間隔后的SAS日期。其中interval 可以取'YEAR'、'QTR'、'MONTH'、'WEEK'、'DAY'等。比如,INTNX('MONTH', '16Dec1997'd, 3)結果為1998年3月1日。注意它總是返回一個周期的開始值。 
INTCK(interval,from,to) 計算從日期from到日期to中間經過的interval間隔的個數,其中interval取'MONTH'等。比如,INTCK('YEAR', '31Dec1996'd, '1Jan1998'd)計算1996年12 月31日到1998年1月1日經過的年間隔的個數,結果得2,盡管這兩個日期之間實際只隔1年。 
其它日期和時間函數還有DATE、TODAY、 DATETIME、DATEJUL、JULDATE、HOUR、MINUTE、SECOND 、TIME、TIMEPART等。詳見《SAS系統-Base SAS軟件使用手冊》、《SAS系統-SAS/ETS軟件使用手冊》。 
五、分布密度函數、分布函數 
作為一個統計計算語言,SAS提供了多種概率分布的有關函數。分布密度、概率、累積分布函數等可以通過幾種統一的格式調用,格式為 
分布函數值 = CDF(' 分布', x <, 參數表>); 
密度值 = PDF(' 分布', x <, 參數表>); 
概率值 = PMF(' 分布', x <, 參數表>); 
對數密度值 = LOGPDF(' 分布', x <, 參數表>); 
對數概率值 = LOGPMF(' 分布', x <, 參數表>); 
CDF計算由'分布'指定的分布的分布函數, PDF計算分布密度函數值,PMF計算離散分布的分布概率,LOGPDF為PDF的自然對數,LOGPMF為PMF的自然對數。函數在自變量 x處計算,<, 參數表>表示可選的參數表。 
分布類型取值可以為: BERNOULLI, BETA, BINOMIAL, CAUCHY, CHISQUARED, EXPONENTIAL, F, GAMMA, GEOMETRIC, HYPERGEOMETRIC, LAPLACE, LOGISTIC, LOGNORMAL, NEGBINOMIAL, NORMAL 或 GAUSSIAN, PARETO, POISSON, T, UNIFORM, WALD 或 IGAUSS, and WEIBULL??梢灾粚懬八膫€字母。 
例如,PDF('NORMAL', 1.96)計算標準正態分布在1.96處的密度值(0.05844),CDF('NORMAL', 1.96)計算標準正態分布在1.96處的分布函數值(0.975)。PMF對連續型分布即PDF。 
除了用上述統一的格式調用外,SAS還單獨提供了常用的分布的密度、分布函數。 
PROBNORM(x) 標準正態分布函數 
PROBT(x,df<,nc>) 自由度為df的t分布函數??蛇x參數nc為非中心參數。 
PROBCHI(x,df<,nc>) 自由度為df的卡方分布函數??蛇x參數nc為非中心參數。 
PROBF(x,ndf,ddf<,nc>) F(ndf,ddf)分布的分布函數??蛇x參數nc為非中心參數。 
PROBBNML(p,n,m) 設隨機變量Y服從二項分布B(n,p),此函數計算P(Y m)。 
POISSON((lambda,n) 參數為lambda的Poisson分布Y n的概率。 
PROBNEGB(p,n,m) 參數為(n,p)的負二項分布Y m的概率。 
PROBHYPR(N,K,n,x<,r>) 超幾何分布的分布函數。設N個產品中有K個不合格品,抽取n個樣品,其中不合格品數小于等于x的概率為此函數值??蛇x參數r是不勻率,缺省為1 ,r代表抽到不合格品的概率是抽到合格品概率的多少倍。 
PROBBETA(x,a,b) 參數為(a,b)的Beta分布的分布函數。 
PROBGAM(x,a) 參數為a的Gamma分布的分布函數。 
PROBMC 計算多組均值的多重比較檢驗的概率值和臨界值。 
PROBBNRM(x,y,r) 標準二元正態分布的分布函數,r為相關系數。 
六、分位數函數 
分位數函數是概率分布函數的反函數。其自變量在0到1之間取值。分位數函數計算的是分布的左側分位數。SAS提供了六種常見連續型分布的分位數函數。 
PROBIT(p) 標準正態分布左側p分位數。結果在-5到5之間。 
TINV(p, df <,nc>) 自由度為df的t分布的左側p分位數??蛇x參數nc為非中心參數。 
CINV(p,df<,nc>) 自由度為df的卡方分布的左側p分位數??蛇x參數nc為非中心參數。 
FINV(p,ndf,ddf<,nc>) F(ndf,ddf)分布的左側p分位數??蛇x參數nc為非中心參數。 
GAMINV(p,a) 參數為a的伽馬分布的左側p分位數。 
BETAINV(p,a,b) 參數為(a,b)的貝塔分布的左側p分位數。 
七、隨機數函數 
SAS可以用來進行隨機模擬。它提供了常見分布的偽隨機數生成函數。 
1.均勻分布隨機數 
有兩個均勻分布隨機數函數:UNIFORM(seed),seed必須是常數,為0,或5位、6位、7位的奇數。RANUNI(seed),seed為小于2**31-1的任意常數。在同一個數據步中對同一個隨機數函數的多次調用將得到不同的結果,但不同數據步中從同一種子出發將得到相同的隨機數序列。隨機數種子如果取0或者負數則種子采用系統日期時間。 
2.正態分布隨機數 
有兩種,NORMAL(seed),seed為0,或5位、6位、7位的奇數。RANNOR(seed),seed為任意數值常數。 
3.指數分布隨機數 
RANEXP(seed),seed為任意數值,產生參數為1的指數分布的隨機數。參數為lambda的指數分布可以用RANEXP(seed)/lambda得到。 
另外若Y=alpha-beta*LOG(RANEXP(seed)),則Y為位置參數為alpha,尺度參數為beta的極值分布。若Y=FLOOR(-RANEXP(seed)/LOG(p)),那么Y是具有參數p的幾何分布變量。 
4.伽馬分布隨機數 
RANGAM(seed, alpha),seed為任意數值常數,alpha>0,得到參數為alpha的伽馬分布。設X=RANGAM(seed, alpha),則Y=beta*X是形狀參數為alpha,尺度參數為beta的GAMMA分布隨機數。如果alpha是整數,則Y=2*X是自由度為 2*alpha的卡方分布隨機數。 
如果alpha是正整數,則Y=beta*X是Erlang分布隨機數,為alpha個獨立的均值為beta的指數分布變量的和。 
如果Y1=RANGAM(seed,alpha),Y2=RANGAM(seed,beta),在Y=Y1/(Y1+Y2)是參數為(alpha,beta )的貝塔分布隨機數。 
5.三角分布隨機數 
RANTRI(seed,h),seed為任意數值常數,0<h<1。此分布在0到1取值,密度在0到h 之間為2x/h,在h到1之間為2(1-x)/(1-h)。 
6.柯西分布隨機數 
RANCAU(seed),seed為任意數值常數。產生位置參數為0,尺度參數為1的標準柯西分布隨機數。Y=alpha+beta*RANCAU(seed)為位置參數為alpha,尺度參數為beta的一般柯西分布隨機數。 
7.二項分布隨機數 
RANBIN(seed,n,p)產生參數為(n,p)的二項分布隨機數,seed為任意數值。 
8.泊松分布隨機數 
RANPOI(seed,lambda)產生參數為lambda>0的泊松分布隨機數,seed為任意數值。 
9.一般離散分布隨機數 
RANTBL(seed, p1, …, pn)生成取1,2,…,n的概率分別為p1,…,pn的離散分布隨機數。 
八、樣本統計函數 
樣本統計函數把輸入的自變量作為一組樣本,計算樣本統計量。其調用格式為“函數名(自變量1,自變量2,…,自變量n)”或者“函數名(OF 變量名列表)”。比如SUM是求和函數,如果要求x1,x2,x3的和,可以用SUM(x1,x2,x3),也可以用SUM(OF x1-x3)。這些樣本統計函數只對自變量中的非缺失值進行計算,比如求平均時把缺失值不計入內。 
各樣本統計函數為: 
MEAN 均值 
MAX 最大值 
MIN 最小值 
N 非缺失數據的個數 
NMISS 缺失數值的個數。 
SUM 求和 
VAR 方差 
STD 標準差 
STDERR 均值估計的標準誤差,用STD/SQRT(N)計算。 
CV 變異系數 
RANGE 極差 
CSS 離差平方和 
USS 平方和 
SKEWNESS 偏度 
KURTOSIS 峰度
trim() 去掉字符串尾部空格,如果字符串為空,則返回一個空格
left() 把字符串開頭的空格移到尾部
strip() 去掉字符串開頭和結尾的所有空格
cat() 與||作用類似,保留首尾全部空格
catt() 但是連接之前會去掉各字符串尾部空格,相當于連接符結合trim()使用
cats() 但是連接之前會去掉首尾全部空格,相當于連接符結合strip()使用
catx() 但是連接之前會去掉首尾全部空格,并且在字符串之間加上一個指定的字符串

sas中sql抽取第幾行第幾列

第一種
proc sql noprint;
        select name into:vname from dictionary.columns
                where libname='WORK' and memname='A' and varnum=1;/*varnum=n n為第幾個變量,即第幾列*/
        run;
        create table aa as
        select &vname from a(firstobs=2 obs=2);/*括號內選項控制選擇第幾個觀測,即第幾行*/
quit;
第二種
proc sql ;
    select * from sashelp.class
     ;
     select name, age, monotonic() as m from sashelp.class
     having  m=2
     ;    

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢