⒈算術函數(Arithmetic Functions)
ABS(x) :求x的絕對值。 例如ABS(-56.3)=56.3 。
MAX(x1,x2,…,xn) :求所有自變量中的最大壹個。 例如MAX(52,15,67,89)=89 。
MIN(x1,x2,…,xn) :求所有自變量中的最小壹個。例如MIN(52,15,67,89)=15 。
MOD(x,y) :求x除以y的余數。 例如MOD(24,3)=0 。
SIGN(x) :計算x的符號,結果為1、-1、0。例如SIGN(-5)=-1,SIGN(20)=1,SIGN(0)=0。
SQRT(x) :求x的平方根。 例如SQRT(225)=15 。
⒉數學函數(Mathematical Functions)
ERF(X):誤差函數 。
EXP(X):指數函數 。
GAMMA(X):計算 的值。
LOG(X):計算x的自然對數。
LOG10(X):計算x的以10為底的對數。
LGAMMA(X):計算函數的自然對數。
⒊截斷函數(Truncation Functions)
CEIL(X):計算x的最小整數,當x為整數時就是x本身,否則為x右側最近的整數。
例如CEIL(-134.45)=-134,CEIL(34.45)=35,CEIL(78)=78。
FLOOR(X):計算小於或等於x的最大整數,例如FLOOR(-134.45)=-135,FLOOR(34.45)=34。
INT(X):求x舍掉小數部分後的整數部分。例如INT(-134.45)=-134,INT(34.45)=34。
ROUND(x,unit):計算x按照unit指定的精度四舍五入後的結果,例如ROUND(134.4567,0.01)結果為134.46,ROUND(3678.2398,10)結果為3680。
⒋三角和曲線函數(Trigonometric and Hyperbolic Functions)
ARCOS(y):計算反余弦函數。
ARSIN(y):計算反正弦函數。
ATAN(y):計算反正切函數。
COS(X):計算x的余弦函數。
SIN(X):計算x的正弦函數
⒌字符函數(Character Functions)
COMPBL(S):將字符串S中的多余空格去掉。
COMPRESS(S,S1):將字符串S中包含的所有字符串S1去掉。
INDEX(S,S1):查找字符串S1在S中的位置。如果S中不包含S1則返回0。
LOWCASE(S):把字符串S中所有大寫字母轉換為小寫字母。
UPCASE(S):把字符串S中所有小寫字母轉換為大寫字母。
RANK(S):求字符串S的ASCII碼值。
REPEAT(S,N):將字符串S重復N次。
SUBSTR(S,N,LONG):字符串S中的第N個字符開始抽取long個字符長的子串。
TRANWRD(S,S1,S2):將字符串S中的所有字符串S1替換成字符串S2。
⒍日期和時間函數(Date and Time Functions)
常用日期和時間函數有:
DATEIF(sdate,edate,basis):計算兩個日期之間相距的天數,basis指定日期格式。
DATE:計算當前SAS系統的日期。
DAY(date):有SAS日期值date得到是幾日。
DHMS(date,hour,minute,second):有日期、小時、分鐘、秒得到SAS日期和時間值。
MDY(month,day,year):生成月日年的SAS日期值。
MONTH(date):有SAS日期值date得到月。
QTR(date):有SAS日期值date得到季度值。
WEEKDAY(day):有SAS日期值date得到星期幾。
YEAR(DATE):有SAS日期值date得到年。
其它日期和時間函數參見SAS系統的幫助信息。
⒎概率與密度函數(Probability and Density Functions)
作為壹個統計計算語言,SAS提供了多種概率分布函數。分布密度、概率、累積分布函數等可以通過集中統壹的格式調用,格式為:
CDF(‘dist’,quantile,parm-1,…,parm-k):計算累計分布函數。Dist為分布名稱,quntile為分為數,隨後是相關參數。
PDF|PMF(‘dist’,quantile,parm-1,…,parm-k):計算概率密度函數。Dist為分布名稱,quntile為分為數,隨後是相關參數。
LOGPDF|LOGPMF(‘dist’,quantile,parm-1,…,parm-k):計算概率密度函數的對數值。Dist為分布名稱,quntile為分為數,隨後是相關參數。
LOGSDF(‘dist’,quantile,parm-1,…,parm-k):計算生存函數的對數值。Dist為分布名稱,quntile為分為數,隨後是相關參數。
PROBCHI(x,df<,nc>):計算卡方分布的概率值。可選參數nc為非中心參數。
PROBF(x,ndf,ddf<,nc>):計算F分布的概率值。可選參數nc為非中心參數。
PROBGAM(x,a):計算伽馬分布的概率值。
PROBNORM(x):計算標準正態分布的概率值。
⒏分位數函數(Quantile Functions)
分位數函數是概率分布函數的反函數。其自變量在0-1之間取值。分位數函數計算的是分布的左側分位數。
BETAINV(p,a,b):計算參數為(a, b)的 分布的p分位數。
CINV(p, df<,nc>):計算自由度為df的卡方分布p分位數。可選參數nc為非中心參數。
FINV(p, ndf, ddf<,nc>):計算F (ndf , ddf)分布的p分位數。可選參數nc為非中心參數。
GAMINV(p, a):計算參數為a的伽馬分布的p分位數。
PROBIT(p):計算標準正態分布的p分位數。
TINV(p, df>,nc<):計算自由度為df的t分布的p分位數。可選參數nc為非中心參數。
⒐隨機數函數(Random Number Functions)
SAS提供了常見分布的偽隨機數生成函數。
NORMAL(seed):產生服從正態分布的隨機數。seed為0,或5位、6位、7位的奇數。
RANNOR (seed):產生服從正態分布的隨機數。seed為任意數值常數。
RANBIN(seed,n, p):產生參數為(n, p)的二項分布隨機數,seed為任意數值。
均勻分布隨機數。系統提供兩個均勻分布隨機數函數:
UNIFORM(seed):產生服從均勻分布的隨機數。參數seed必須是常數,為0,或5位、6位、7位的奇數。
RANUNI (seed):產生服從均勻分布的隨機數。參數seed為小於2**31-1的任意常數。在同壹個數據步中對同壹個隨機數函數的多次調用將得到不同的結果,但不同數據步中從同壹種子出發將得到相同的隨機數序列。隨機數種子如果取0或者負數,則種子采用系統日期時間。
RANEXP(seed):產生服從指數分布的隨機數。seed為任意數值,產生參數為1的指數分布的隨機數。
RANPOI(seed,lambda):產生參數為lambda>0的泊松分布隨機數,seed為任意數值。
RANTBL(seed,P1,…,Pn)生成取1,2,…,n的概率分別為P1,…,Pn的離散分布隨機數。
⒑樣本統計函數(Sample Statistics Funtions)
樣本統計函數把輸人的自變量作為壹組樣本,計算樣本統計量。其調用格式為“函數名(自變量1,自變量2,…,自變量n)”或者“函數名(OF變量名列表)”。比如SUM是求和函數,如果要求x1、x2, x3的和,則可以用SUM(xl,x2,x3),也可以用SUM(of x1-x3)。
各樣本統計函數為:
CSS:離差平方和
CV:變異系數
KURTOSIS:峰度
MEAN:均值
MAX:最大值
MIN:最小值
N:非缺失數據的個數
NMISS:缺失數值的個數
RANGE:極差=MAX - MIN
SKEWNESS:偏度
STD DEV:標準差
STDERR:均值估計的標準誤,用STD/SQRT(N)計算
SUM:求和
USS:平方和
VAR:方差