07-SAS 运算符与常用函数

作者

Simon Zhou

发布于

2025年5月28日

修改于

2025年6月9日

1 SAS 运算符

1.1 算术运算符

算术运算符
符号 含义
** 乘方
*
+
-
/

1.2 比较运算符

比较运算符
符号 含义
=EQ 等于
^NE 不等于
>GT 大于
>=GE g
<LT 小于
<=LE 小于等于

1.3 逻辑运算符

逻辑运算符
符号 含义
&AND 逻辑与
|OR 逻辑或
^NOT 逻辑非

2 常用函数

2.1 算术函数

函数 含义
\(ABS(x)\) x 的绝对值
\(MAX(x_1,x_2…,x_n)\) x 中的最大值
\(MIN(x_1,x_2…,x_n)\) x 中的最小值
\(MOD(x,y)\) xy 的余数
\(SIGN(x)\)

当 x < 0 时,取值为 -1;

当 x > 0 时,取值为 1;

x = 0 时,取值为 0.

\(SORT(x)\) x 的平方根

2.2 截取函数

函数 含义
\(CEIL(x)\) 大于等于 x 的最小整数
\(FLOOR(x)\) 小于等于 x 的最大整数
\(INT(x)\) x 的整数部分
\(ROUND(x,n)\) x 按 n 指定的精度取舍入值
\(SUBSTR( s,p,n)\) 从字符串 s 中的第 p 个字符开始抽取 n 个字符的子串

2.3 数组函数

函数 含义
DIM( x ) 计算数组 x 第一维的元素个数
DIMk( x) 计算数组 x 第 k 维的元素个数
HBOUND( x ) 计算数组 x 第一维的上界
HBOUNDk( x ) 计算数组 x 第 k 维的上界
LBOUND( x ) 计算数组 x 第一维的下界
LBOUNDk( x ) 计算数组 x 第 k 维的下界

2.4 数学函数

函数 含义
DIGAMMA( x ) 对 x 计算 GAMMA 函数对数的导数
ERF( x ) x 的误差函数
ERFC( x ) x 的误差函数的余函数
EXP( x ) e 的 x 次方
GAMMA( x ) 对 x 计算完全 GAMMA 函数
LGMAMMA( x ) 对 x 计算 GAMMA 函 数的自然对数
L0G( x ) 以 e 为底的对数
LOG2( x ) 以 2 为底的对数
LOG10( x ) 以 10 为底的对数
\(ORDINAL(k,x_1,...)\) 返回由 k 确定的部分序列的最大值
TRIGAMMA( x ) 计算 DIGAMMA(x) 函数的导数
AIRY( x ) 计算微分方程的解
DAIRY( x ) 求 AIRY(x) 的导数
JBESSEL( nu,x ) 计算 BESSEL 函数
IBESSEL( nu, x, kode ) 计算修正 BESSEL 函数

2.5 三角函数

三角函数
函数 含义
ARCOS( x ) 反余弦函数
ARSIN( x ) 反正弦函数
ATAN( x ) 反正切函数
COS( x ) 余弦函数
COSH( x ) 双曲余弦函数
SIN( x ) 正弦函数
SINH( x ) 双曲正弦函数
TAN( x ) 正切函数
TANH( x ) 双曲正切函数

2.6 概率函数

概率函数
函数 含义
POISSON( lambda,n ) 泊松分布的概率分布函数
PROBBETA( x,a,b ) \(\beta\) 分布的分布函数
PROBBNML( p,n,m ) 二项分布的概率分布函数
PROBCHI( x, df, nc ) \(\chi^2\) 分布的分布函数
PROBF( x, ndf, ddf, nc ) F分布的分布函数
PROBGAM( x,a ) \(\gamma\) 分布的分布函数
PROBHYPR( nn,k,n,x, or ) 超几何分布的概率分布函数
PROBNEGB( p,n,m ) 负二项分布的概率分布函数
PROBNORM( x ) 标准正态分布函数
PROBT( x, df, nc ) t 分布函数

2.7 随机函数

随机函数
函数 含义
NORMAL( seed ) 产生标准正态分布随机数
RANBIN( seed, n, p) 产生二项分布随机数
RANCAU( seed ) 产生柯西分布随机数
RANEXP( seed ) 产生指数分布随机数
RANGAM( seed, alpha ) 产生 \(\gamma\) 分布的随机数
RANNOR( seed ) 产生标准正态离差随机数
RANPOI( seed , lambda ) 产生泊松分布随机数
RANTBL( seed, p1 , p2…, pn) 产生离散分布随机数
RANTRI( seed, h ) 产生三角分布随机数
RANUNI( seed ) 产生均匀离差随机数
UNIFORM( seed ) 产生均匀分布随机数

2.8 样本统计函数

样本统计函数
函数 含义
CV( x,y,…) 产生一组数据的变异系数
KURTOSIS( x,y,…) 产生一组数据的峰度系数
MAX( x,y,…) 产生一组数据的最大值
MIN( x,y,…) 产生一组数据的最小值
MEAN( x,y,…) 产生一组数据的均数
N( x,y,…) 产生一组数据的例数
NMISS( x,y,…) 产生一组数据的缺失例数
RANGE( x,y,…..) 产生一组数据的极差
SKEWNESS( x,y,….) 产生一组数据的偏度系数
STD( x,y,…. ) 产生一组数据的标准差
STDERR( x,y,….. ) 产生一组数据的标准误
SUM( x,y,…..) 产生一组数据的总和
VAR( x,y,….) 产生一组数据的方差
CSS( x,y,….) 产生一组数据的离均差平方和
USS( x,y,….) 产生一组数据的平方和

2.9 分位函数

分位函数
函数 含义
CINV( p, df, ne ) \(\chi^2\) 分布的分位数
BETAINV( p, a, b) \(\beta\) 分布的分位数
FINV ( p, ndf, ddf, nc ) F 分布的分位数
TINV( p, df, nc ) T 分布的分位数
PROBIT(p) 正态分布的分位数
GAMINV(p,a) \(\gamma\) 分布的分位数

2.10 日期与时间函数

日期与时间函数
函数 含义
DATE( ) 取电脑系统今天的日期作为 SAS 日期值
DATEPART( dt ) 抽取 SAS 日期时间值的日期部分
DATETIME( ) 取当前日期和时间
DAY( date ) 从 SAS 日期值计算出某月的那一天
DHMS( d,h,m,s ) 从日期、小时、分钟、秒得到 SAS 日期时间值
HMS( h,m,s ) 从小时、分钟和秒得到 SAS 时间值
HOUR ( dt | time ) 从 SAS 日期时间值或时间值或文字计算小 时(点钟)
INTCK( in, from, to ) 取时间间隔数字
INTNX( in,from,nu ) 按给定间隔推算日期时间或日期时间值
MDY( m, d, yr ) 从年、月和日得到 SAS 日期值
MINUTE ( t | dt ) 从 SAS 时间或日期时间值或文字得到分钟数
Q( date ) 从 SAS 日期值或文字得到月份
SECOND( t | dt ) 从 SAS 时间或日期时间值或文字得到秒数
TIME( ) 取当日的时间
TIMEPART ( dt ) 抽取 SAS 日期时间值或文字的时间部分
TODAY( ) 取当前日期作为 SAS 日期值
WEEKDAY( date ) 从 SAS 日期值或文字得到星期几
YEAR( date ) 从 SAS 日期值得到年
YYQ( yr,q ) 从年和季节得到 SAS 日期值