
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
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25