---
title: "07-SAS 运算符与常用函数"
author: "Simon Zhou"
date: "2025-05-28"
date-modified: today
format:
html:
code-fold: true
code-line-numbers: true
code-highlight: true
fig_caption: true
number-sections: true
toc: true
toc-depth: 2
---
## SAS 运算符
### 算术运算符
| 符号 | 含义 |
|------|------|
| \*\* | 乘方 |
| \* | 乘 |
| \+ | 加 |
| \- | 减 |
| / | 除 |
: 算术运算符
### 比较运算符
| 符号 | 含义 |
|--------------|----------|
| `=` 或 `EQ` | 等于 |
| `^` 或 `NE` | 不等于 |
| `>` 或 `GT` | 大于 |
| `>=` 或 `GE` | g |
| `<` 或 `LT` | 小于 |
| `<=` 或 `LE` | 小于等于 |
: 比较运算符
### 逻辑运算符
| 符号 | 含义 |
|--------------|--------|
| `&` 或 `AND` | 逻辑与 |
| `|` 或 `OR` | 逻辑或 |
| `^` 或 `NOT` | 逻辑非 |
: 逻辑运算符
## 常用函数
### 算术函数
+---------------------------+-----------------------------------+
| 函数 | 含义 |
+===========================+===================================+
| $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 的平方根 |
+---------------------------+-----------------------------------+
### 截取函数
+--------------------+---------------------------------------------------+
| 函数 | 含义 |
+====================+===================================================+
| $CEIL(x)$ | 大于等于 x 的最小整数 |
+--------------------+---------------------------------------------------+
| $FLOOR(x)$ | 小于等于 x 的最大整数 |
+--------------------+---------------------------------------------------+
| $INT(x)$ | x 的整数部分 |
+--------------------+---------------------------------------------------+
| $ROUND(x,n)$ | x 按 n 指定的精度取舍入值 |
+--------------------+---------------------------------------------------+
| $SUBSTR( s,p,n)$ | 从字符串 s 中的第 p 个字符开始抽取 n 个字符的子串 |
+--------------------+---------------------------------------------------+
### 数组函数
+----------------------------+-------------------------------+
| 函数 | 含义 |
+============================+===============================+
| DIM( x ) | 计算数组 x 第一维的元素个数 |
+----------------------------+-------------------------------+
| DIMk( x) | 计算数组 x 第 k 维的元素个数 |
+----------------------------+-------------------------------+
| HBOUND( x ) | 计算数组 x 第一维的上界 |
+----------------------------+-------------------------------+
| HBOUNDk( x ) | 计算数组 x 第 k 维的上界 |
+----------------------------+-------------------------------+
| LBOUND( x ) | 计算数组 x 第一维的下界 |
+----------------------------+-------------------------------+
| LBOUNDk( x ) | 计算数组 x 第 k 维的下界 |
+----------------------------+-------------------------------+
### 数学函数
+---------------------------+-----------------------------------+
| 函数 | 含义 |
+===========================+===================================+
| 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 函数 |
+---------------------------+-----------------------------------+
### 三角函数
+---------------------------+-----------------------------------+
| 函数 | 含义 |
+===========================+===================================+
| ARCOS( x ) | 反余弦函数 |
+---------------------------+-----------------------------------+
| ARSIN( x ) | 反正弦函数 |
+---------------------------+-----------------------------------+
| ATAN( x ) | 反正切函数 |
+---------------------------+-----------------------------------+
| COS( x ) | 余弦函数 |
+---------------------------+-----------------------------------+
| COSH( x ) | 双曲余弦函数 |
+---------------------------+-----------------------------------+
| SIN( x ) | 正弦函数 |
+---------------------------+-----------------------------------+
| SINH( x ) | 双曲正弦函数 |
+---------------------------+-----------------------------------+
| TAN( x ) | 正切函数 |
+---------------------------+-----------------------------------+
| TANH( x ) | 双曲正切函数 |
+---------------------------+-----------------------------------+
: 三角函数
### 概率函数
+---------------------------+-----------------------------------+
| 函数 | 含义 |
+===========================+===================================+
| 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 分布函数 |
+---------------------------+-----------------------------------+
: 概率函数
### 随机函数
+-------------------------------+-----------------------------------+
| 函数 | 含义 |
+===============================+===================================+
| 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 ) | 产生均匀分布随机数 |
+-------------------------------+-----------------------------------+
: 随机函数
### 样本统计函数
+---------------------------+-----------------------------------+
| 函数 | 含义 |
+===========================+===================================+
| 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,....) | 产生一组数据的平方和 |
+---------------------------+-----------------------------------+
: 样本统计函数
### 分位函数
| 函数 | 含义 |
|--------------------------|-----------------------|
| 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$ 分布的分位数 |
: 分位函数
### 日期与时间函数
+-----------------------+------------------------------------------------+
| 函数 | 含义 |
+=======================+================================================+
| 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 日期值 |
+-----------------------+------------------------------------------------+
: 日期与时间函数