SAS常用函數(shù)介紹
SAS的功能非常強大和全面,這一點在函數(shù)上得到了極為充分的體現(xiàn),SAS 8.2中共有25大類函數(shù),功能涉及到文件管理、金觸、數(shù)學(xué)計算、統(tǒng)計計算、字符串處理、貨幣轉(zhuǎn)換等各個方面。因篇幅限制,這里無法將數(shù)百種函數(shù)一一解釋,只列舉出餃為常用的十大類函數(shù),關(guān)于這些函數(shù)的詳細信息,以及術(shù)列出的貨幣轉(zhuǎn)換函數(shù)、金融函數(shù)、地區(qū)以及郵政編碼函數(shù)等相關(guān)信息請大家參見SAS幫助。
1. 算術(shù)函數(shù)
ABS(X)
求x的絕對值
DIM<n>(X)
求數(shù)組中的元素個數(shù),X為數(shù)組名,n為該數(shù)組的維數(shù)
DIM(X, n)
求多維數(shù)組的某一維中的元素個數(shù),X為數(shù)組名,n為指定的維數(shù)
HBOUND<n>(X)
求數(shù)組的上界
HBOUND(X,n)
求多維數(shù)組中的某一維的上界,X為數(shù)組名,n為指定的維數(shù)
LBOUND<n>(X)
求數(shù)組的下界
LBOUND(X,n)
求多維數(shù)組中的某一維的下界,X為數(shù)組名,n為指定的維數(shù)
MAX(X,Y,Z)
求一串數(shù)中最大的一個,例如MAX(1,2,3,4)=4
MIX(X,Y,Z)
求一串數(shù)中最小的一個,例如MAX(1,2,3,4)=1
MOD(X,Y)
求X除以Y的余數(shù),例如MOD(9,5)=4
SIGN(X)
計算X的符號,結(jié)果為1,、-1或0
SQRT(X)
求X的平方根
2. 字符函數(shù)
BYTE(n)
返回ASCII碼值為n所對應(yīng)的字符
COLLATE(X,Y)
返回ASCII碼起始位置為X,終止位置為Y之間所有的字符
COMPBL(X)
把字符串X中多余空格去掉,即將連續(xù)多個空格壓縮為一個
COMPRESS(X,Y)
把字符串X中包含的所有字符串Y去掉
DEQUOTE(X)
去掉字符串X的引號
INDEX(X,Y)
返回字符串Y在X中的位置,如果X不包含Y則返回0
INDEXC(X, Y1, Y2…)
返回Y1、Y2等字符在X首先出現(xiàn)的位置,如無,則返回0
INDEXW(X,Y)
以單詞的方式搜索X中是否包含Y,單詞間以空格區(qū)分
LEFT(X)
去除字符串X左側(cè)的空格,即左對齊
LENGTH(X)
返回字符串X的長度
LOWCASE(X)
將X中的字母變?yōu)樾?div style="height:15px;">
QUOTE(X)
給X加上一個引號
RANK(X)
給出字符X所對應(yīng)的ASCII碼值
REVERSE(X)
將字符串X顛倒過來
RIGHT(X)
將字符串X右對齊
SCAN(X, n)
返回字符串X中的第n個單詞,單詞間以空格區(qū)分
SOUNDEX(X)
將字符串X進行自動編碼,以便于查找
SUBSTR(X, n, <long>)
從字符串中將n個字符后long長度的字符串抽出
SUBSTR(X, n, <long>)=str2
將字符串X中指定位置的子串替換為字符串str2
TRANSLATE(STRING, X, Y)
將字符串STRING中的Y字符替換為X字符
TRANSRD(STRING, X, Y)
將字符串中的單詞X替換為單詞Y,單詞間以空格區(qū)分
TRIM(X)
去掉字符串X的末尾的空格
UPCASE(X)
將字符串X中的字母變?yōu)榇髮?div style="height:15px;">
VERIFY(STRING, X)
返回STRING中第一個不為X字符的位置
3. 數(shù)學(xué)函數(shù)
AIRY(x)
計算AIRY函數(shù)的值
DAIR(x)
計算DAIR函數(shù)的衍生值
DIGAMMA(argument)
計算DIGAMMA函數(shù)的值
ERF(argument)
計算偏差函數(shù)的值
EXP(argument)
指數(shù)函數(shù)
GAMMA(argument)
計算伽馬函數(shù)的值
IBESSEL(nu, x, kode)
計算修正的bessel函數(shù)值
JBESSEL(nu, x)
計算bessel函數(shù)值
LGAMMA(argument)
計算伽馬函數(shù)值的對數(shù)
LOG(argument)
自然對數(shù)函數(shù)
LOG2(argument)
以2為底的對數(shù)函數(shù)
LOG10(argument)
以10為底的對數(shù)函數(shù)
TRIGAMMA(argument)
計算三元的伽馬函數(shù)值
4. 概率與密度函數(shù)
CDF(‘dist’, quantile, parm-1,…, parm-k)
計算累計分布函數(shù),dist為分布名稱,隨后指定相關(guān)參數(shù)
LOGPDF(‘dist’, quantile, parm-1,…, parm-k)
計算概率密度函數(shù)的對數(shù)
LOGSDF(‘dist’, quantile, parm-1,…, parm-k)
計算生存函數(shù)的對數(shù)值
PDF|PMF(‘dist’, quantile, parm-1,…, parm-k)
計算概率密度函數(shù)
POISSON(m, n)
計算服從均數(shù)為m的POISSON分布變量值小于n的概率值
PROBBETA(x, a, b)
計算BETA分布的概率值
PROBBNML(p, n,m)
計算總體概率為P的二項分布在n次試驗中成功次數(shù)小于等于m次的概率
PROBCHI(x, df<, nc>)
計算卡方分布的概率值
PROBF(x, ndf, ddf<, nc>)
計算F分布的概率值
PROBGAM(x, a)
計算伽馬分布的概率值
PROBHYPR(N, K, n, x, r>)
計算超幾何分布的概率值
PROBNEGB(p, n, m)
計算負二項分布的概率值
PROBBNRM(x, y, r)
標準的二元正態(tài)函數(shù)
PROBNORM(x)
標準的正態(tài)分布函數(shù)值
PROBT(x, df<, nc>)
計算t分布的概率值
SDF(‘dist’, quantile, parm-1,…, parm-k)
計算生存函數(shù)
5. 分位數(shù)函數(shù)
BETAINV(p, a, b)
計算分布參數(shù)為a、b的beta分布的第p百分位數(shù)
CINV(p, df<, nc>)
計算卡方分布的分位數(shù)
FINV(p, ndf, ddf<, nc>)
計算F分布的分位數(shù)
GAMINV(p, a)
計算伽馬分布的分位數(shù)
PROBIT(p)
計算標準正態(tài)分布的分位數(shù)
TINV(p, df<, nc>)
計算t分布的分位數(shù)
6. 隨機函數(shù)
NORMAL(seed)
計算服從正態(tài)分布的隨機函數(shù)
RANBIN(seed, n, p)
計算服從二項式分布的隨機函數(shù)
RANCAU(seed)
計算服從柯西分布的隨機函數(shù)
RAND(‘dist’, parm-1,…, parm-k)
根據(jù)特定的分布產(chǎn)生隨機數(shù)(尚在測試階段)
RANEXP(seed)
產(chǎn)生服從指數(shù)分布的隨機數(shù)
RANGAM(seed, a)
產(chǎn)生服從伽馬分布的隨機數(shù)
RANNOR(seed)
產(chǎn)生服從正態(tài)分布的隨機數(shù)
RANPOI(seed, m)
產(chǎn)生服從Poisson分布的隨機數(shù)
RANTBL(seed, p1,..pi..pn)
由列表的概率分布產(chǎn)生隨機數(shù)
RANTRI(seed, h)
產(chǎn)生服從三角分布的隨機數(shù)
RANUNI(seed)
產(chǎn)生服從均勻分布的隨機數(shù)
UNIFORM(seed)
產(chǎn)生服從均勻分布的隨機數(shù)
7. 樣本統(tǒng)計函數(shù)
CSS(argument, argument, …)
計算指定數(shù)值列表的離差平方和
CV(argument, argument, …)
計算變異系數(shù)
KURTOSIS(argument, argument, …)
計算峰度系數(shù)
MAX(argument, argument, …)
計算最大值
MIN(argument, argument, …)
計算最小值
MEAN(argument, argument, …)
計算均值
MISSING(num exp | character expression)
檢驗數(shù)據(jù)是否含有缺失值
N(argument, argument, …)
計算樣本個數(shù),不包括缺失值
NMISS(argument, argument, …)
計算樣本中缺失值個數(shù)
ORDINAL(count, argument, argument, …)
計算列表中第count個數(shù)值
RANGE(argument, argument, …)
計算全距最大值與最小值的差
SKEWNESS(argument, argument, …)
計算偏度系數(shù)
STD(argument, argument, …)
計算標準差
STDERR(argument, argument, …)
計算標準誤
SUM(argument, argument, …)
計算總和
USS(argument, argument, …)
計算平方和
VAR(argument, argument, …)
計算方差
8. 三角函數(shù)
ARCOS(argument)
反余弦函數(shù)
ARSIN(argument)
反正弦函數(shù)
ATAN(argument)
反正切函數(shù)
COS(argument)
余弦函數(shù)
COSH(argument)
雙曲余弦函數(shù)
SIN(argument)
正弦函數(shù)
SINH(argument)
雙曲正弦函數(shù)
TAN(argument)
正切函數(shù)
TANH(argument)
雙曲正弦函數(shù)
9. 截斷函數(shù)
CEIL(argument)
如果當前數(shù)值和整數(shù)部分的差距在10-12以內(nèi),則直接取整數(shù),否則取大于原值的最小整數(shù)
FLOOR(argument)
計算小于或等于自變量的最大的整數(shù)
FUZZ(argument)
如果當前數(shù)值和整數(shù)部分的差距在10-12以內(nèi)則直接取整數(shù)
INT(argument)
計算自變量的整數(shù)部分
ROUND(argument, unit)
按unit給定的數(shù)量單位進行四舍五入
TRUNC(argument, length)
將數(shù)據(jù)截為特定的長度
10. 日期時間函數(shù)
DATDIF(sdate, edate, basis)
計算兩個日期之間相距的天數(shù),basis指定SAS中的時間格式
DATE
計算當月的日期作為SAS日期數(shù)據(jù)
DATEJUL(julian-date)
將Julian日期格式轉(zhuǎn)換為SAS日期格式
DATEPART(datetime)
從日期時間格式的數(shù)據(jù)中抽取日期
DATETIME()
計算當前日期時間值
DAY(date)
從SAS日期值得出是幾號
DHMS(date, hour, minute, second)
從日期小時分鐘秒四個數(shù)值得到SAS日期時間值
HMS(hour, minute, second)
從小事分鐘秒三個值計算一個SAS日期時間值
HOUR(<time |datetime>)
從SAS時間或SAS日期時間中計算小時的數(shù)值
INTCK(‘interval’, from, to)
計算給定時間段中的間隔的個數(shù)
INTNX(‘interval’, start-from, increment<, ‘a(chǎn)lignment’>)
計算在一定時間后的SAS日期時間值
JULDATE(date)
將SAS日期格式轉(zhuǎn)換為Julian日期
MDY(month,day,year)
從月日年得到一個SAS日期值
MINUTE(time |datetime)
從時間值或日期時間值中抽取分鐘值
MONTH(date)
從日期中得到月份
QTR(date)從SAS
日期值得到對應(yīng)的季度
SECOND(time | datetime)
從SAS時間值或SAS日期時間值中得到秒
TIME
計算當前時間
TIMEPART
從日期時間值中抽取時間值
TODAY
計算當前日期
WEEKDAY
從SAS日期值得到為星期幾
YEAR
由SAS日期值得到年份
YRDIF
計算兩個日期之間所差的年份
YYQ
從年份和季度產(chǎn)生一個SAS日期值