【SAS BASE】SAS函数

字符型变量

  • 返回字符中参数的位置类
1 ANYALNUM(arg,start)  /*输出arg中从第一位(若start缺失)或stat位开始的首次出现任何阿拉伯数字或字符的位置*/
2 ANYALPHA(arg,start)   /*输出arg中从第一位(若start缺失)或stat位开始的首次出现任何阿拉伯字符的位置*/
3 ANADIGIT(arg,start)   /*输出arg中从第一位(若start缺失)或stat位开始的首次出现任何阿拉伯数字的位置*/
4 ANYSPACE(arg,start)   /*输出arg中从第一位(若start缺失)或stat位开始的首次出现空格的位置*/
5 INDEX(arg,‘string‘)   /*输出arg中string的起始位置*/
6 LENTGH(arg) /*返回arg的长度(不计入后置空格),缺失值长度为1*/
  • 连接字符串
1 CAT(arg-1,arg-2,...,arg-n) /*将两个或多个字符串连接起来,保留首位和中间的空格,两个是同"||"*/
2 CATS(arg-1,arg-2,...,arg-n)  /*将两个或多个字符串连接起来,删掉首位和中间的空格*/
3 CATX(‘separator-string‘,arg-1,arg-2,...,arg-n)  /*将两个或多个字符串连接起来,删掉首位和中间的空格,在参数中间插入指定的分隔符*/
  • 处理单个字符串类
1 COMPRESS(arg,‘char‘)  /*将arg中的空格(若‘char‘缺失)或‘char‘指定的字符删掉*/
2 TRIM(arg) /*将arg中的后置空格删掉*/
3 LEFT(arg) /*使得字符串左对齐*/
4 PROPCASE(arg)  /*将首字母变成大写,其他字母变成小写*/
5 UPCASE(arg) /*将字符串中的所有字母装化为大写*/
6 SUBSTR(arg,position,n) /*从arg的第position个位置开始,抽取n个字符(若n缺失,截取直到字符串末尾)*/
7 TRANSLATE(source,to-1,from-1,...,to-n,from-n)  /*将source中的from-i字符转换成to-i字符(注意:只能一对一,不能将一个换成另外两个)*/
8 TRANWRD(source,from,to) /*将source中的from字符转换成to字符*/

数值型:

 1 INT(arg)
 2 LOG(arg)
 3 LOG10(arg)
 4 MAX(arg-1,arg-2,..,arg-n)
 5 MIN(arg-1,arg-2,..,arg-n)
 6 MEAN(arg-1,arg-2,..,arg-n)  /*所有非缺失值的算术平均数*/
 7 SUM(arg-1,arg-2,..,arg-n)  /*所有非缺失值的和*/
 8 N(arg-1,arg-2,..,arg-n) /*非缺失值个数*/
 9 NMISS(arg-1,arg-2,..,arg-n)  /*缺失值个数*/
10 ROUND(arg,round-off-unit) /*约至最近的roud-off-unit(若确实,则约到整数)*/

日期

 1 DATEJUL(julian-date) /*将julian-date转化为SAS格式的日期*/
 2
 3 MDY(month,day,year) /*根据参数中的日、月、年返回SAS格式日期*/
 4
 5 DAY(date) /*返回SAS日期date是这个月的第几天*/
 6
 7 WEEKDAY(date) /*返回SAS日期date是这个星期的星期几*/
 8
 9 MONTH(date) /*返回SAS日期date的月份*/
10
11 QTR(date) /*返回SAS日期date的所在季度数*/
12
13 YEAR(date) /*返回SAS日期date的所在年份*/
14
15 YRDIF(start-date,end-date,‘ACTUAL‘)  /*用实际日期计算两个SAS日期的差*/

【SAS BASE】SAS函数

时间: 2024-10-10 13:42:23

【SAS BASE】SAS函数的相关文章

【SAS BASE】SCAN函数

1 [例子] 2 3 data a; 4 arg='ABC.DEF(X=Y)'; 5 word=scan(arg,3); 6 put word; 7 run;/*word:X=Y*/ 8 9 data b; 10 arg='ABC.DEF(X=Y)'; 11 word=scan(arg,-3); 12 put word; 13 run;/*word:ABC*/ 14 15 data c; 16 arg='ABC.DEF(X=Y)'; 17 word=scan(arg,-20); 18 put w

【SAS BASE】Debuging SAS Programs

SAS Program的错误主要有三类: Programing Logic Errors(How to identify and resolve); Syntax errors(How to recogize anc correct); Data errors(How to examine and resolve. 如何写一个高效的SAS Program: 尽可能写易读的代码:(每一句话一行.使用缩进排版方式.多使用注释) 测试Program的任意一个部分 用小数据集测试Program(例如用O

【SAS BASE】ARRAY语句及多变量简写

ARRAY语句: 1 ARRAY array-name (n) $ variable-list; 2 array名 变量个数 变量列表(若为字符型,则需要$) 3 4 ARRAY STORE (4) Macys Penneys Sears Target; 5 DO i=1 to 10; 6 IF STORE(i)=9 THEN song(i)=.; 7 END; 多变量简写 1 /*以相同的字符开头,以连续的数字结尾(两条等价)*/ 2 INPUT cat8 cat9 cat10 cat11 c

【SAS BASE】PROC EXPORT

PROC EXPORT可导出两种类型的文件: 导出delimited文件 1 *例子; 2 PROC EXPORT DATA=hotels 3 OUTFILE='C:\MyRawData\Hotels.txt' /*后缀名决定了输出文件的格式,除此之外,额也可以通过DBMS=选项来指定.*/ 4 /*例如:space-delimited文件时没有标准的后缀名的,只能通过DBMS=选项来输出*/ 5 DBMS=DLM /*若输出CSV文件,则DBMS=CSV; 6 若输出txt文件,则DBMS=T

【SAS BASE】处理数据集

本节内容包括:SET语句.MERGE语句.UPDATA语句.OUTPUT语句.TRANSPOSE语句和data-set选项及SAS Automatic Variables 一.SET语句(堆叠功能) 用SET语句修改数据集 DATA Friday; SET Sales;/SET 'C:\MySASLIB\trains.dat'; IF DAY='F'; Total=Propcorn+peanuts;/*建立新的变量*/ RUN; 用SET语句堆叠(stack)数据 1 DATA BOTH; 2

【SAS BASE】PROC REPORT

PROC REPORT包含了PRINT.MEANS.TABULATE.SORT过程和DATA步的功能: 一.基本语法: 1 DATA natparks; 2 INFILE 'C:\MyRawdata\parks.dat'; 3 INPUT Name $ 1-21 Type $ Region $ Museums Camping; 4 RUN; 5 6 /*-----Group and Across Variables(Group:纵向;Across:横向)---*/ 7 *Region as Gr

【SAS BASE】ODS OUTPUT

一.ODS的基本性质 ODS输出格式:LISTING(默认的标准SAS输出).HTML.RTF.PRTNTER.PS.PCL.PDF.OUTPUT(SAS OUTPUT Date-set).MARKUP.DOCUMENT; ODS内有table template(指定输出结构)和style template(指定外观结构):首先通过table template作用从procedure中产生数据,形成output project,然后经过style template作用送到destination加

【SAS BASE】PROC TABULATE(输出更加精美的tabulate报告)

PROC TABULATE的一般形式:(主语与FREQ过程不同,这里是table 语句,不是tables) 1 PROC TABULATE FORMAT=options;/*FORMAT=选项改变table中所有cell的格式*/ 2 VAR analysis-variable-list; 3 CLASS classification-variable-list;/*在下面table语句中出现的变量必须预先在VAR语句或CLASS出现过*/ 4 TABLE page-dimension, row

【SAS BASE】PROC FREQ

一般形式: 1 PROC FREQ; 2 TABLES variable_combinations/options; 3 /*variable_combinations 4 若为单变量:TABLE variable-name; 5 若为多变量: TABLE variable-name-1 variable-name-2 ...; 6 若为交叉变量:TABLES variable-name-1*variable-name-2; 7 */ 常见的options有: 1 LIST:将cross-tab