⒈算术函数(Arithmetic Functions)
ABS(x) :求x的绝对值。 例如ABS(-563)=563 。
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(-13445)=-134,CEIL(3445)=35,CEIL(78)=78。
FLOOR(X):计算小于或等于x的最大整数,例如FLOOR(-13445)=-135,FLOOR(3445)=34。
INT(X):求x舍掉小数部分后的整数部分。例如INT(-13445)=-134,INT(3445)=34。
ROUND(x,unit):计算x按照unit指定的精度四舍五入后的结果,例如ROUND(1344567,001)结果为13446,ROUND(36782398,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为小于231-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:方差
scan函数: scan(s,n,"char")表示从字串string中以char为分隔符提取第n个字串。
功能(function):从字符表达式s中搜取给定的n个单词
语法(syntax)
1、scan(s,n) n为正数时,从字符s末尾提取n个字符
2、scan(s,n) n为负数时,从字符s开始提取n个字符
3、scan(s,n<,list-of-delimiters>)
如果指定分隔符,则只会按照该分隔符提取。如果不指定,则按照常用的分隔符拆分,默认分隔符为:空格 < ( + & ! $ ) ; ^ - / , % | 等之一或组合。
扩展资料
注意事项:
1、如果缺失指定的生成变量的长度,系统默认长度为200。
2、如果|n|=0或大于字符s的长度,则该函数返回空格。
3、用于读入纯字符或者数字,没有表头;
4、如果输入的单一类型的变量,例如均是:数值或者均是字符,用scan效率更高。但其不能读入混合类型的数据,也就是在scan()读入的必须同为字符或者同为数值;
5、默认情况下用scan读入的数据生成向量类型(这也就是为什么读入的数据必须是同为字符或者同为数字)。
DATA CHENGJI1;
INPUT NAME $ SEX $ MATH CHN GROUP;
CARDS;
李明 男 92 98 1
张红艺 女 89 106 1
王思明 男 86 90 1
;
RUN;
DATA CHENGJI2;
INPUT NAME $ SEX $ MATH CHN GROUP;
CARDS;
张聪 男 95 92 2
刘颖 女 98 101 2
高红 女 91 92 2
;
RUN;
DATA CHENGJI3;
INPUT NAME $ SEX $ MATH CHN GROUP;
CARDS;
赵强 男 93 99 3
李云芳 女 96 102 3
周闪 男 88 98 3
;
RUN;
第二步;
DATA CHENGJI0;
SET CHENGJI1 CHENGJI2 CHENGJI3;
RUN;
第三步;
DATA CHENGJI;
SET CHENGJI0;
AVG=MEAN(MATH,CHN);
RUN;
PROC SORT;
BY AVG;
RUN;
第四步;
DATA MATH90;
SET CHENGJI0;
WHERE MATH>90;
RUN;
第五步;
PROC SORT DATA=CHENGJI(KEEP=NAME GROUP AVG) OUT=LAST ;
BY GROUP AVG;
RUN;
DATA LAST;
SET LAST;
BY GROUP AVG;
IF FIRSTGROUP;
RUN;
第六步;
PROC SORT DATA=CHENGJI0 OUT=MATH;
BY SEX;
RUN;
DATA MATH(KEEP=SEX AVG SUM_ALL);
SET MATH END=T;
BY SEX;
IF FIRSTSEX THEN DO;
I=0;
M=0;
END;
M+MATH;
I+1;
AVG=M/I;
J+1;
TOT+MATH;
IF LASTSEX;
IF T THEN SUM_ALL=TOT;
RUN;
第七步;
PROC SUMMARY DATA=CHENGJI0 NWAY;
VAR MATH;
OUTPUT OUT=A(DROP=_TYPE_ RENAME=(_FREQ_=N)) SUM=TOT;
RUN;
DATA DIF;
IF _N_=1 THEN SET A;
SET CHENGJI0;
AVG=TOT/N;
DIFF=AVG-MATH;
DROP TOT N;
RUN;
第八步;
DATA EN;
INPUT EN @@;
CARDS;
80 84 85 86 82 87 96 75 52
;
RUN;
DATA ALL;
SET CHENGJI0;
SET EN;
RUN;
楼上这位是大牛,多向他学习学习
以上就是关于SAS语言的常用函数全部的内容,包括:SAS语言的常用函数、请问sas中scan函数如何使用、SAS数据处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)