文档库 最新最全的文档下载
当前位置:文档库 › SAS导入数据

SAS导入数据

SAS导入数据
SAS导入数据

SAS培训第一讲

课程:数据的导入和导出

部门:创新业务部

时间:2014/11/19

内容概要:

1.菜单操作

2.Proc import

3.Infile语句

4.Libname

5.批量导入数据(不讲)

6.数据的导出(直接使用菜单方法或proc export,不讲)

7.各种导入方法的优缺点

数据类型:Excel数据,csv数据(逗号分隔符),Access数据

详细讲解:

1.菜单导入数据(只介绍EXCEL数据导入,其他类似)

1)打开导入数据向导,如下图;

2)选择将要导入的数据类型,然后点击“next”;

3)选择将要导入的数据的物理地址,点击“OK”进入下一步;

4)选择将要导入的table,点击“next”;

5)选择将数据导入哪个逻辑库并填入数据集名称,点击“next”;

6)该步让用户选择是否将菜单操作背后的代码导出,若无必要直接点击“Finish”,完成数

据的导入。

2.Import过程步导入数据

1)Excel表格数据

proc import out = index1

datafile = "C:\Users\Administrator\Desktop\399101.xlsx"

dbms = excel replace;

range = "sheet1$";

getnames = NO;

run;

参数解释:

dbms——规定外部文件格式的标示名

replace——规定替换已存在的文件

range——指定将要导入的数据范围

getnames——规定是否将第一行数据作为变量名

2)csv数据

proc import out = import_csv

datafile = "C:\Users\Administrator\Desktop\data_lesson1\鞍山20141112.csv"

dbms = csv replace;

delimiter = ',';

getnames = yes;

datarow = 2;

guessingrows = 4000;

run;

参数解释:

dbms——规定外部文件格式的标示名

replace——规定替换已存在的文件

delimiter——规定外部文件分隔符

getnames——规定是否将第一行数据作为变量名

datarow——规定从第几行开始读取数据

guessingrows——规定根据前多少条数据确定变量格式

说明:

a)对于文件格式的标示名与源文件格式之间的对应关系参《SAS编程技术教程》

b)一般情况都加上replace,以免重新导入数据时出错,当然也可以不加

c)若文件含分隔符,则必须规定delimiter选项

d)当getnames=yes时,datarow应大于1

e)guessingrows最大取值为4000,若缺省此项,SAS默认将第一条数据的格式作为变

量格式。

对于数据量超过4000条的数据最好不要使用proc import导入数据,有可能会导致字符被截断等情况。接下来介绍的infile方法可以解决这一点。

3)Access数据

proc import out = import_ac

table = 'content'

dbms = access replace;

database =

"C:\Users\Administrator\Desktop\data_lesson1\SpiderResult.mdb";

uid = '';

pwd = '';

run;

3.Infile语句导入数据

在data步中使用infile语句,可以通过先定义变量的输入格式,再导入数据,避免出现字符截断等情况。Infile语句导入数据的基本格式如下:

data infile_csv;

infile"C:\Users\Administrator\Desktop\data_lesson1\鞍山20141112.csv" dsd delimiter=','firstobs=2truncover lrecl=1000;

informat area_plate $40. community $60. address $200. price $20.

estate_time $40. constr_type $50. covers_area $30. constr_area $30. developer $100. property $100. plot_ratio $12. green_rate $12.

property_fee $50. dta_date $10. pageurl $150.;

input area_plate $ community $ address $ price $ estate_time $ constr_type $ covers_area $ constr_area $

developer $ property $ plot_ratio $ green_rate $ property_fee $ dta_date $ id $ pageurl $;

run;

参数解释:

dsd——表示源数据是分隔符敏感性的,即数据中存在非空格的分隔符

delimiter——规定外部文件分隔符

firstobs——规定从第几行开始读取数据,类似上文中的datarow

obs——读取数据的行数

truncover——当部分行数据长度小于其他行时,使用该选项防止SAS读入到下一行lrecl——SAS默认每条数据的长度不超过256个字节,当一条记录的长度大于该值时,会导致部分字段读取出错,使用lrecl可以定义单条数据的最长长度。

4.Libname生成库文件

Libname可以用来定义一个逻辑库,每个逻辑库对应一个数据库引擎,默认的情况下数据库引擎为V9(SAS自带数据库引擎)。当然,也可以自由选择其他库引擎。

在导入EXCEL数据时可以定义一个库引擎为EXCEL的逻辑库,可以直接将EXCEL中的各张sheet直接导入到SAS中。

Libname d excel 'C:\Users\Administrator\Desktop\399101.xlsx';

data lib_ex;

set d.'399101$'n;

run;

对于Access数据亦然:

libname c access

'C:\Users\Administrator\Desktop\data_lesson1\SpiderResult.mdb';

5.批量导入(不讲)

1)批量导入一个文件中的所有csv数据

需要编写一个宏,下面是批量导入100个城市的房价数据的代码:

%macro directory(dir);

%let rs=%sysfunc(filename(filref,&dir));

%let did=%sysfunc(dopen(&filref));

%let nobs=%sysfunc(dnum(&did));

%do i=1%to &nobs;

%let name=%qscan(%qsysfunc(dread(&did,&i)),1,.);

%let ext=%qscan(%qsysfunc(dread(&did,&i)),-1,.);

data fangjia&i;

infile "&dir.\&name..&ext" dsd delimiter=',' firstobs=2 truncover

lrecl=1000;

informat area_plate $40. community $60. address $200. price $20.

estate_time $40. constr_type $50. covers_area $30. constr_area $30. developer $100. property $100. plot_ratio $12. green_rate $12.

property_fee $50. dta_date $10. pageurl $150.;

input area_plate $ community $ address $ price $ estate_time $ constr_type $ covers_area $ constr_area $

developer $ property $ plot_ratio $ green_rate $ property_fee $ dta_date $ id $ pageurl $;

run;

%end;

%let rc=%sysfunc(dclose(&did));

%mend;

%directory(E:\房价项目\房价网数据\20141113);

2)批量导入一张Excel表格中的多张sheet或批量导入Access文件中多张table

使用libname导入方法即可。

6.数据的导出

7.各种导入方法的优缺点

1)菜单操作方便,但对于有分隔符的数据(csv,txt),只根据前20行来确定各变量的属

性,容易导致数据截断;

2)proc import对于不同数据类型,导入方法不尽相同,同样对于有分隔符的数据最多只

能根据前4000条数据确定各变量的属性,也会导致数据截断;

3)infile语句不能导入EXCEL或ACCESS文件,但对于有分隔符的数据效果很好,还可以

避免数据截断;

4)libname不能导入csv或txt文件,但对于Excel或Access有很好的批量导入解决方

法。

(完)

SAS常用函数大全

一、数学函数 ABS(x) 求x的绝对值。 MAX(x1,x2,…,xn) 求所有自变量中的最大一个。 MIN(x1,x2,…,xn) 求所有自变量中的最小一个。 MOD(x,y) 求x除以y的余数。 SQRT(x) 求x的平方根。 ROUND(x,eps) 求x按照eps指定的精度四舍五入后的结果,比如 ROUND(5654.5654,0.01) 结果为5654.57,ROUND(5654.5654,10)结果为5650。 CEIL(x) 求大于等于x的最小整数。当x为整数时就是x本身,否则为x右边最近的整数。 FLOOR(x) 求小于等于x的最大整数。当x为整数时就是x本身,否则为x左边最近的整数。 INT(x) 求x扔掉小数部分后的结果。 FUZZ(x) 当x与其四舍五入整数值相差小于1E-12时取四舍五入。 LOG(x) 求x的自然对数。 LOG10(x) 求x的常用对数。 EXP(x) 指数函数。 SIN(x), COS(x), TAN(x) 求x的正弦、余弦、正切函数。 ARSIN(y) 计算函数y=sin(x)在区间的反函数,y取[-1,1]间值。 ARCOS(y) 计算函数y=cos(x)在的反函数,y取[-1,1]间值。 ATAN(y) 计算函数y=tan(x)在的反函数,y取间值。 SINH(x), COSH(x), TANH(x) 双曲正弦、余弦、正切 ERF(x) 误差函数 GAMMA(x) 完全函数

此外还有符号函数SIGN,函数一阶导数函数DIGAMMA,二阶导数函数TRIGAMMA ,误差函数余函数ERFC,函数自然对数LGAMMA,ORDINAL函数,AIRY 函数,DAIRY 函数,Bessel函数JBESSEL,修正的Bessel函数IBESSEL,等等。 二、数组函数 数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括: DIM(x) 求数组x第一维的元素的个数(注意当下界为1时元素个数与上界相同,否则元素个数不一定与上界相同)。 DIM k(x) 求数组x第k维的元素的个数。 LBOUND(x) 求数组x第一维的下界。 HBOUND(x) 求数组x第一维的上界。 LBOUND k(x) 求数组x第 k维的下界。 HBOUND k(x) 求数组x第 k维的上界。 三、字符函数 较重要的字符函数有: TRIM(s) 返回去掉字符串s的尾随空格的结果。 UPCASE(s) 把字符串s中所有小写字母转换为大写字母后的结果。 LOWCASE(s) 把字符串s中所有大写字母转换为小写字母后的结果。 INDEX(s,s1) 查找s1在s中出现的位置。找不到时返回0。 RANK(s) 字符s的ASCII码值。 BYTE(n) 第n个ASCII码值的对应字符。 REPEAT(s,n) 字符表达式s重复n次。

SAS函数介绍

Functions and CALL Routines by Category Categories and Descriptions of Functions Category Function Description Array DIM Returns the number of elements in an array HBOUND Returns the upper bound of an array LBOUND Returns the lower bound of an array Bitwise Logical Operations BAND Returns the bitwise logical AND of two arguments BLSHIFT Returns the bitwise logical left shift of two arguments BNOT Returns the bitwise logical NOT of an argument BOR Returns the bitwise logical OR of two arguments BRSHIFT Returns the bitwise logical right shift of two arguments BXOR Returns the bitwise logical EXCLUSIVE OR of two arguments Character String Matching CALL RXCHANGE Changes one or more substrings that match a pattern CALL RXFREE Frees memory allocated by other regular expression_r(RX) functions and CALL routines CALL RXSUBSTR Finds the position, length, and score of a substring that matches a pattern RXMA TCH Finds the beginning of a substring that matches a pattern and returns a value RXPARSE Parses a pattern and returns a value Character BYTE Returns one character in the ASCII or the EBCDIC collating sequence COLLATE Returns an ASCII or EBCDIC collating sequence character string COMPBL Removes multiple blanks from a character string COMPRESS Removes specific characters from a character string DEQUOTE Removes quotation marks from a character value INDEX Searches a character expression for a string of characters INDEXC Searches a character expression for specific characters INDEXW Searches a character expression for a specified string as a word

一些常用的SAS命令

常用SAS命令 1. SAS的子窗口主要有浏览器窗口(EXPLORER)、结果窗口(RESULTS)、程序编辑器窗口(program editor)、日志窗口(log)、输出窗口(output); 2.切换至日志窗口的命令是log、热键是F6;切换至输出窗口的命令是output、热键是F7; 3.提交SAS程序的命令是submit; 4. SAS系统是大型集成软件系统,具备完备的数据访问、管理、分析和呈现及应用开发功能; 5. SAS数据集是一类由SAS系统建立、维护和管理的数据文件; 6.为了实现存储和管理面向对象的开发任务,SAS建立目录册(catalog)类型的文件,在这一类文件中可以存储整个应用系统,包括它的界面,源程序和各种对象间的连接; 7. SAS逻辑库是一个逻辑概念,一个逻辑库就是存放在同一文件夹或

几个文件夹中的一组SAS文件; 8.在SAS软件系统的信息组织中,总共只有两个层次:SAS逻辑库是高一级的层次,低一级的层次就是SAS文件本身; 9.在SAS系统中,为便于访问一个SAS文件,要为该SAS文件所在的位置指定一个SAS逻辑库,即赋予一个逻辑库名,在指定逻辑库名后,就可使用两级命名的方式引用SAS文件:逻辑库名.文件名; 10.在每个SAS进程一开始,系统就自动地指定了一些逻辑库供用户使用,它们是WORK、SASHELP和SASUSER; 11.在每个SAS进程开始时系统缺省地创建名为work的SAS逻辑库,它是一个临时逻辑库,在引用WORK库中的SAS文件时,可省略逻辑库名; 12.永久逻辑库是指它的内容在当前SAS进程结束时仍被保留的SAS 逻辑库,在SAS系统中除了库名为WORK以外的逻辑库都是永久库; 13. Sashelp包含所安装SAS系统各个产品有关的SAS文件,运行安装的SAS系统所需要的SAS文件缺省地存储在这个逻辑库中;

SAS 常用函数汇总

SAS 常用函数汇总 一、数学函数 ABS(x) 求x的绝对值。 MAX(x1,x2,…,xn) 求所有自变量中的最大一个。 MIN(x1,x2,…,xn) 求所有自变量中的最小一个。 MOD(x,y) 求x除以y的余数。 SQRT(x) 求x的平方根。 ROUND(x,eps) 求x按照eps指定的精度四舍五入后的结果,比如 ROUND(5654.5654,0.01) 结果为5654.57,ROUND(5654.5654,10)结果为5650。CEIL(x) 求大于等于x的最小整数。当x为整数时就是x本身,否则为x右边最近的整数。 FLOOR(x) 求小于等于x的最大整数。当x为整数时就是x本身,否则为x左边最近的整数。 INT(x) 求x扔掉小数部分后的结果。 FUZZ(x) 当x与其四舍五入整数值相差小于1E-12时取四舍五入。 LOG(x) 求x的自然对数。 LOG10(x) 求x的常用对数。 EXP(x) 指数函数。 SIN(x), COS(x), TAN(x) 求x的正弦、余弦、正切函数。 ARSIN(y) 计算函数y=sin(x)在区间的反函数,y取[-1,1]间值。 ARCOS(y) 计算函数y=cos(x)在的反函数,y取[-1,1]间值。 ATAN(y) 计算函数y=tan(x)在的反函数,y取间值。 SINH(x), COSH(x), TANH(x) 双曲正弦、余弦、正切 ERF(x) 误差函数 GAMMA(x) 完全函数 此外还有符号函数SIGN,函数一阶导数函数DIGAMMA,二阶导数函数TRIGAMMA ,误差函数余函数ERFC,函数自然对数LGAMMA,ORDINAL函数,AIRY 函数,DAIRY函数,Bessel函数JBESSEL,修正的Bessel函数IBESSEL,等等。 二、数组函数 数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括:DIM(x) 求数组x第一维的元素的个数(注意当下界为1时元素个数与上界相同,否则元素个数不一定与上界相同)。 DIM k(x) 求数组x第k维的元素的个数。 LBOUND(x) 求数组x第一维的下界。 HBOUND(x) 求数组x第一维的上界。 LBOUND k(x) 求数组x第 k维的下界。

sas函数大全

sas函数大全 一、数学函数 ABS(x) 求x的绝对值。 MAX(x1,x2,…,xn) 求所有自变量中的最大一个。 MIN(x1,x2,…,xn) 求所有自变量中的最小一个。 MOD(x,y) 求x除以y的余数。 SQRT(x) 求x的平方根。 ROUND(x,eps) 求x按照eps指定的精度四舍五入后的结果,比如ROUND(5654.5654,0.01) 结果为5654.57,ROUND(5654.5654,10)结果为5650。 CEIL(x) 求大于等于x的最小整数。当x为整数时就是x本身,否则为x右边最近的整数。FLOOR(x) 求小于等于x的最大整数。当x为整数时就是x本身,否则为x左边最近的整数。 INT(x) 求x扔掉小数部分后的结果。 FUZZ(x) 当x与其四舍五入整数值相差小于1E-12时取四舍五入。 LOG(x) 求x的自然对数。 LOG10(x) 求x的常用对数。 EXP(x) 指数函数。 SIN(x), COS(x), TAN(x) 求x的正弦、余弦、正切函数。 ARSIN(y) 计算函数y=sin(x)在区间的反函数,y取[-1,1]间值。 ARCOS(y) 计算函数y=cos(x)在的反函数,y取[-1,1]间值。 ATAN(y) 计算函数y=tan(x)在的反函数,y取间值。 SINH(x), COSH(x), TANH(x) 双曲正弦、余弦、正切 ERF(x) 误差函数 GAMMA(x) 完全函数 此外还有符号函数SIGN,函数一阶导数函数DIGAMMA,二阶导数函数TRIGAMMA ,误差函数余函数ERFC,函数自然对数LGAMMA,ORDINAL函数,AIRY 函数,DAIRY函数,Bessel函数JBESSEL,修正的Bessel函数IBESSEL,等等。 二、数组函数 数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括: DIM(x) 求数组x第一维的元素的个数(注意当下界为1时元素个数与上界相同,否则元素个数不一定与上界相同)。 DIM k(x) 求数组x第k维的元素的个数。 LBOUND(x) 求数组x第一维的下界。 HBOUND(x) 求数组x第一维的上界。 LBOUND k(x) 求数组x第 k维的下界。 HBOUND k(x) 求数组x第 k维的上界。 三、字符函数 较重要的字符函数有: TRIM(s) 返回去掉字符串s的尾随空格的结果。 UPCASE(s) 把字符串s中所有小写字母转换为大写字母后的结果。 LOWCASE(s) 把字符串s中所有大写字母转换为小写字母后的结果。 INDEX(s,s1) 查找s1在s中出现的位置。找不到时返回0。 RANK(s) 字符s的ASCII码值。 BYTE(n) 第n个ASCII码值的对应字符。 REPEAT(s,n) 字符表达式s重复n次。 SUBSTR(s,p,n) 从字符串s中的第p个字符开始抽取n个字符长的子串

sas常用函数

Sas常用函数(转) 一、数学函数 ABS(x) 求x的绝对值。 MAX(x1,x2,…,xn) 求所有自变量中的最大一个。 MIN(x1,x2,…,xn) 求所有自变量中的最小一个。 MOD(x,y) 求x除以y的余数。 SQRT(x) 求x的平方根。 ROUND(x,eps) 求x按照eps指定的精度四舍五入后的结果,比如ROUND(5654.5654,0.01) 结果为5654.57,ROUND(5654.5654,10)结果为5650。 CEIL(x) 求大于等于x的最小整数。当x为整数时就是x本身,否则为x右边最近的整数。 FLOOR(x) 求小于等于x的最大整数。当x为整数时就是x本身,否则为x左边最近的整数。 INT(x) 求x扔掉小数部分后的结果。 FUZZ(x) 当x与其四舍五入整数值相差小于1E-12时取四舍五入。 LOG(x) 求x的自然对数。 LOG10(x) 求x的常用对数。 EXP(x) 指数函数。 SIN(x), COS(x), TAN(x) 求x的正弦、余弦、正切函数。 ARSIN(y) 计算函数y=sin(x)在区间的反函数,y取[-1,1]间值。 ARCOS(y) 计算函数y=cos(x)在的反函数,y取[-1,1]间值。 ATAN(y) 计算函数y=tan(x)在的反函数,y取间值。 SINH(x), COSH(x), TANH(x) 双曲正弦、余弦、正切 ERF(x) 误差函数 GAMMA(x) 完全函数

此外还有符号函数SIGN,函数一阶导数函数DIGAMMA,二阶导数函数TRIGAMMA ,误差函数余函数ERFC,函数自然对数LGAMMA,ORDINAL函数,AIRY 函数,DAIRY函数,Bessel 函数JBESSEL,修正的Bessel函数IBESSEL,等等。 二、数组函数 数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括: DIM(x) 求数组x第一维的元素的个数(注意当下界为1时元素个数与上界相同,否则元素个数不一定与上界相同)。 DIM k(x) 求数组x第k维的元素的个数。 LBOUND(x) 求数组x第一维的下界。 HBOUND(x) 求数组x第一维的上界。 LBOUND k(x) 求数组x第k维的下界。 HBOUND k(x) 求数组x第k维的上界。 三、字符函数 较重要的字符函数有: TRIM(s) 返回去掉字符串s的尾随空格的结果。 UPCASE(s) 把字符串s中所有小写字母转换为大写字母后的结果。 LOWCASE(s) 把字符串s中所有大写字母转换为小写字母后的结果。 INDEX(s,s1) 查找s1在s中出现的位置。找不到时返回0。 RANK(s) 字符s的ASCII码值。 BYTE(n) 第n个ASCII码值的对应字符。 REPEAT(s,n) 字符表达式s重复n次。 SUBSTR(s,p,n) 从字符串s中的第p个字符开始抽取n个字符长的子串 TRANWRD(s,s1,s2) 从字符串s中把所有字符串s1替换成字符串s2后的结果。

SAS中的函数

在学习任何软件的时候,函数都是很重要的学习容,大大方便我们的工作,没事的时候就拿出来看看吧。 一、数学函数 ABS(x) 求x的绝对值。 MAX(x1,x2,…,xn) 求所有自变量中的最大一个。 MIN(x1,x2,…,xn) 求所有自变量中的最小一个。 MOD(x,y) 求x除以y的余数。 SQRT(x) 求x的平方根。 ROUND(x,eps) 求x按照eps指定的精度四舍五入后的结果,比如ROUND(5654.5654,0.01) 结果为5654.57,ROUND(5654.5654,10)结果为5650。 CEIL(x) 求大于等于x的最小整数。当x为整数时就是x本身,否则为x右边最近的整数。 FLOOR(x) 求小于等于x的最大整数。当x为整数时就是x本身,否则为x左边最近的整数。 INT(x) 求x扔掉小数部分后的结果。 FUZZ(x) 当x与其四舍五入整数值相差小于1E-12时取四舍五入。LOG(x) 求x的自然对数。 LOG10(x) 求x的常用对数。 EXP(x) 指数函数。 SIN(x), COS(x), TAN(x) 求x的正弦、余弦、正切函数。

ARSIN(y) 计算函数y=sin(x)在区间的反函数,y取[-1,1]间值。ARCOS(y) 计算函数y=cos(x)在的反函数,y取[-1,1]间值。 ATAN(y) 计算函数y=tan(x)在的反函数,y取间值。 SINH(x), COSH(x), TANH(x) 双曲正弦、余弦、正切 ERF(x) 误差函数 GAMMA(x) 完全函数 此外还有符号函数SIGN,函数一阶导数函数DIGAMMA,二阶导数函数TRIGAMMA ,误差函数余函数ERFC,函数自然对数LGAMMA,ORDINAL函数,AIRY 函数,DAIRY函数,Bessel函数JBESSEL,修正的Bessel函数IBESSEL,等等。 二、数组函数 数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括: DIM(x) 求数组x第一维的元素的个数(注意当下界为1时元素个数与上界相同,否则元素个数不一定与上界相同)。 DIM k(x) 求数组x第k维的元素的个数。 LBOUND(x) 求数组x第一维的下界。 HBOUND(x) 求数组x第一维的上界。 LBOUND k(x) 求数组x第k维的下界。 HBOUND k(x) 求数组x第k维的上界。 三、字符函数 较重要的字符函数有:

sas函数

SAS常用函数 一、数学函数 ABS(x) 求x的绝对值。 MAX(x1,x2,…,xn) 求所有自变量中的最大一个。 MIN(x1,x2,…,xn) 求所有自变量中的最小一个。 MOD(x,y) 求x除以y的余数。 SQRT(x) 求x的平方根。 ROUND(x,eps) 求x按照eps指定的精度四舍五入后的结果,比如 ROUND(5654.5654,0.01) 结果为5654.57,ROUND(5654.5654,10)结果为5650。CEIL(x) 求大于等于x的最小整数。当x为整数时就是x本身,否则为x右边最近的整数。 FLOOR(x) 求小于等于x的最大整数。当x为整数时就是x本身,否则为x左边最近的整数。 INT(x) 求x扔掉小数部分后的结果。 FUZZ(x) 当x与其四舍五入整数值相差小于1E-12时取四舍五入。 LOG(x) 求x的自然对数。 LOG10(x) 求x的常用对数。 EXP(x) 指数函数。 SIN(x), COS(x), TAN(x) 求x的正弦、余弦、正切函数。 ARSIN(y) 计算函数y=sin(x)在区间的反函数,y取[-1,1]间值。 ARCOS(y) 计算函数y=cos(x)在的反函数,y取[-1,1]间值。 ATAN(y) 计算函数y=tan(x)在的反函数,y取间值。 SINH(x), COSH(x), TANH(x) 双曲正弦、余弦、正切 ERF(x) 误差函数 GAMMA(x) 完全函数 此外还有符号函数SIGN,函数一阶导数函数DIGAMMA,二阶导数函数TRIGAMMA ,误差函数余函数ERFC,函数自然对数LGAMMA,ORDINAL 函数,AIRY 函数,DAIRY函数,Bessel函数JBESSEL,修正的Bessel函数IBESSEL,等等。 二、数组函数 数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括:DIM(x) 求数组x第一维的元素的个数(注意当下界为1时元素个数与上界相同,否则元素个数不一定与上界相同)。 DIM k(x) 求数组x第k维的元素的个数。 LBOUND(x) 求数组x第一维的下界。 HBOUND(x) 求数组x第一维的上界。 LBOUND k(x) 求数组x第k维的下界。 HBOUND k(x) 求数组x第k维的上界。 三、字符函数 较重要的字符函数有: TRIM(s) 返回去掉字符串s的尾随空格的结果。 UPCASE(s) 把字符串s中所有小写字母转换为大写字母后的结果。

SAS函数大全

SAS FUNCTIONS Excerpted from SAS release 8.2 Online Documentation July, 2004 Arithmetic Functions ABS(argument)returns absolute value DIM(array-name)returns the number of elements in a one-dimensional array or the number of elements in a specified dimension of a multidimensional array. n specifies the dimension, in a multidimensional array, for which you want to know the the number of elements. DIM(array-name,bound-n)returns the number of elements in a one-dimensional array or the number of elements in the specified dimension of a multidimensional array bound-n specifies the dimension in a multidimensional array, for which you want to know the number of elements. HBOUND(array-name)returns the upper bound of an array HBOUND(array-name,bound- n) returns the upper bound of an array LBOUND(array-name)returns the lower bound of an array LBOUND(array-name,bound- n) returns the lower bound of an array MAX(argument,argument, ...)returns the largest value of the numeric arguments MIN(argument,argument, ...)returns the smallest value of the numeric arguments MOD(argument-1, argument- 2) returns the remainder SIGN(argument)returns the sign of a value or 0 SQRT(argument)returns the square root Character Functions BYTE(n)returns one character in the ASCII or EBCDIC collating sequence where n is an integer representing a specific ASCII or EBCDIC character COLLATE(start-position<,end-position>) | (start-position<,,length>)returns an ASCII or EBCDIC collating sequence character string COMPBL(source)removes multiple blanks between words in a character string

SAS常用函数大全

引言 1. 字符函数 2. 日期和时间函数 3. 数组函数 4. 数学函数 5. 样本描述统计函数 6. 特殊函数 7. 随机数函数 8. 宏函数 9. 变量信息函数 10. 分布密度函数、分布函数 11. 分位数函数

一、字符函数 1. TRIM(s):返回去掉字符串s的尾随空格的结果。 2. UPCASE(s):把字符串s中所有小写字母转换为大写字母后的结果。 3. LOWCASE(s):把字符串s中所有大写字母转换为小写字母后的结果。 4. INDEX(s,s1):查找s1在s中出现的位置。找不到时返回0。 5. RANK(s):字符s的ASCII码值。 6. BYTE(n):第n个ASCII码值的对应字符。 7. REPEAT(s,n):字符表达式s重复n次。 8. SUBSTR(s,p,n):从字符串s中的第p个字符开始抽取n个字符长的子串 9. TRANWRD(s,s1,s2):从字符串s中把所有字符串s1替换成字符串s2后的结果。 10. PROPCASE(s):把字符串s的第一个字母大写。 11. CATX(d,s1,s2):把字符串s1和字符串s2通过d(如'-')连接返回结果。 12. COMPBL(s):把字符串s中的不同长度空格变为长度为1的空格返回结果。 13. COMPRESS(s,c,m):将字符串c(默认为空格)从字符串中移除,m为对d的添加项如下: d增加数字到初始字符里(chars)。 f增加下划线和字母(A-Z,a-z)到初始字符里(chars)。 g增加图形字符到初始字符里(chars)。 k不移除初始字符(chars)而是返回这些字符。 l增加小写字母(a-z)。 n增加数字、下划线和字母(A-Z,a-z)。 p增加标点符号。 s增加空格,包括空格,水平制表符,垂直制表符,回车符,换行符和换页符 u增加大写字母(A-Z)。 a增加(A-Z,a-z)到初始字符里(chars)。 14. ANYALNUM(s,start):查找字符串s中从start位置开始第一个数字或字母的位置。 15. ANYALPHA(s,start):查找字符串s中从start位置开始第一个字母的位置。 16. ANYDIGIT(s,start):查找字符串s中从start位置开始第一个数字的位置。 17. ANYPUNCT(s,start):查找字符串s中从start位置开始第一个特殊标点字符的位置。 18. ANYSPACE(s,start):查找字符串s中从start位置开始第一个空格的位置。 19. ANYUPPER(s,start):查找字符串s中从start位置开始第一个大写字母的位置。 20. NOTALNUM(s,start):查找字符串s中从start位置开始第一个非数字和字母的位置。 21. NOTALPHA(s,start):查找字符串s中从start位置开始第一个非字母的位置。 22. NOTUPPER(s,start):查找字符串s中从start位置开始第一个非大写字母的位置。 23. FIND(s,c,m,start):查找字符串s中从start开始字符串c第一次出现的位置,m为i时忽略大小写。 24. FINDC(s,c,m,start):查找字符串s中从start开始字符串c中任何一个字符第一次出现得的位置,m为对d的添加项如下: i忽略大小写 t忽略字符串两边首尾的空格 k查找除c中的任何字符 a增加大写和小写字母(a-z)(A-Z) d增加数字 25. FINDW(s,w,m,start):查找字符串s中以w为分隔符(默认为空格)从start位置开始第一个出现字符串整体w的位置。 26. INDEXC(s,s1,s2,sn):查找多个字符串s1,s2,s3在s中出现的位置。找不到时返回0。 27. VERIFY(s,s1):查找字符串s中第一个非字符串s1中任何字符的位置,找不到时返回0。 28. CALL CATS(s,s1,s2,sn):把字符串S1-Sn去除首尾空格连接后赋值给变量s。 29. CALL CATX(d,s,s1,s2,sn):把字符串S1-Sn去除首尾空格通过d连接后赋值给变量s 30. LEFT(s):去除字符串s的左边空格。

很全的sas基础知识(一)

很全的sas基础知识(一) 5.1SAS表达式简介 1.SAS常数表达式 (1)数值常数如: 1.23、-5、0.5E-10。 (2)字符常数如: name1='TOME'、name2='MARY'、name3='JOHN'。 (3)日期(d)、时间(t)、日时(dt)常数如: d1='01JAN80'd、t1='9:25:19't、 dt1='18JAN80:9:27:05'dt。 (4)16进制常数(略) 2.SAS运算符 (1)前缀算符与后缀算符 前缀算符, 即正号或负号; 如: +Y; -25; -COS(30); +(X*Y); 后缀算符,即两个运算对象之间的运算符号, 如: 1+9; 4-2; 6<8。 (2)只含一个运算符的简单表达式(Ⅰ组)和含有多于一个运算符的复合表达式(Ⅱ组) Ⅰ组, 如: A+B; C-D; E*F; G/H; Ⅱ组, 如: 1-EXP(N/(N-1));100-LOG(N*(N+1)); (3)操作运算的顺序 求一个复合表达式的值时, 其操作运算的顺序和优先级遵从如下的规则(见表5.1): 表5.1SAS的运算符及其在运算顺序上的优先级 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 优先级组别运算符号等价表示运算符号含义之说明━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 第0 组()括号 第 1 组**+-乘方, 正数, 负数^><<>NOT MIN MAX逻辑非, 最小, 最大 第 2 组*/乘, 除 第 3 组+-加, 减 第 4 组‖或||字串连接 第 5 组<<=LT LE小于, 小于等于=^=EQ NE等于, 不等于 >=>GE GT大于等于, 大于 IN等于一列元数中的某一个 第 6 组&AND逻辑与 第7 组|或|OR逻辑或 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 各组的计算顺序分别为: 第0组由内向外;其他各组均自左至右。第4组和第7组都给出了 两种运算符号, 这是因为不同的系统可能只认识其中的某一种 5.2SAS函数简介 SAS软件中共有13类147个SAS函数, 现将其中最常用者的用法作一扼要介绍。 1.算术函数 (1)求一个数的绝对值的函数ABS和求一个正数的算术平根的函数SQRT

SAS代码汇总

建立逻辑库 libname xlb "D:\my document\PKU\econometrics\hw1"; 从excel中导入数据 PROC IMPORT OUT=hw1.one DATAFILE="数据存放的地址"DBMS=EXCEL REPLACE; SHEET=“FS_Combas”; /* 指明哪个sheet*/ GETNAMES=YES; /*是否用excel表中的变量名*/ MIXED=YES; /* 用一列中是否可以有不同结构的数据*/ USEDATE=YES; /*是否直接把excel中日期转出SAS的日期变量*/ RUN; 黏贴表格 proc append data=hw2.dalyr7 base=hw2.dalyr; run; 合并匹配/*先排序再合并,支持一对多,但不支持多对多*/ proc sort data=hw2.dalyr; by trddt; run; proc sort data=hw2.index nodupkey; by trddt; run; data hw2.four; merge hw2.dalyr hw2.index; by trddt; run; 编辑数据 data one; set wang.exer2_capm; beta2=beta*beta; run; data hw2.four; set hw2.four; format dretwd1 retindex1 best32.; dretwd1=input(dretwd,best32.); retindex1=input(retindex,best32.); keep stkcd trddt dretwd1 retindex1; rename dretwd1=dretwd; rename retindex1=retindex; run;

sas脚本开发常用函数

sas脚本常用函数 一、数学函数 Lag1(x) 延迟1 Lag2(x) 延迟2 ABS(x) 求x的绝对值。 MAX(x1,x2,…,xn) 求所有自变量中的最大一个。 MIN(x1,x2,…,xn) 求所有自变量中的最小一个。 MOD(x,y) 求x除以y的余数。 SQRT(x) 求x的平方根。 ROUND(x,eps) 求x按照eps指定的精度四舍五入后的结果,比如ROUND(5654.5654,0.01) 结果为5654.57,ROUND(5654.5654,10)结果为5650。 CEIL(x) 求大于等于x的最小整数。当x为整数时就是x本身,否则为x右边最近的整数。 FLOOR(x) 求小于等于x的最大整数。当x为整数时就是x本身,否则为x左边最近的整数。 INT(x) 求x扔掉小数部分后的结果。 FUZZ(x) 当x与其四舍五入整数值相差小于1E-12时取四舍五入。

LOG(x) 求x的自然对数。 LOG10(x) 求x的常用对数。 EXP(x) 指数函数。 SIN(x), COS(x), TAN(x) 求x的正弦、余弦、正切函数。 ARSIN(y) 计算函数y=sin(x)在区间的反函数,y取[-1,1]间值。 ARCOS(y) 计算函数y=cos(x)在的反函数,y取[-1,1]间值。 ATAN(y) 计算函数y=tan(x)在的反函数,y取间值。 SINH(x), COSH(x), TANH(x) 双曲正弦、余弦、正切 ERF(x) 误差函数 GAMMA(x) 完全函数 此外还有符号函数SIGN,函数一阶导数函数DIGAMMA,二阶导数函数TRIGAMMA ,误差函数余函数ERFC,函数自然对数LGAMMA,ORDINAL函数,AIRY 函数,DAIRY函数,Bessel函数JBESSEL,修正的Bessel函数IBESSEL,等等。 二、数组函数 数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括:

最全的SAS9.2函数列表一

最全的SAS9.2函数列表一 Posted by Admin in SAS系统 Tags: 9.2, list, SAS, 函数列表| 2 Comments 热度: SAS提供了大量的内置函数,并且在数量和内容上不断的发展改进,从版本9.2开始还提供了自定义函数功能。使用合适的函数,将会使你的工作效率加倍。2008年我在SASor论坛上贴了一个SAS9.2新增函数的列表,具体见论坛帖子;2009年我曾经在技术博客上对SAS函数做了比较深入的讨论,对SAS函数从版本6到版本9.2进行了细致的综述,详见“SAS函数&CALL例程介绍与实例精选“,并在SAS爱好者上海聚会分享了这一内容,当时的PPT见“SAS函数和CALL 例程的发展”。 当时所关注的函数其实仅仅集中于SAS常规函数,尽管如此,SAS9.2 的常规函数已达到499个。庞大的函数库确实给SASor们带来了非常多的方便,但是仓库式的SAS builted in帮助太杂乱,常常让人有一种“不识庐山真面目,只缘身在此山中”的感觉。有时,需要的函数找不到,找到的函数又不合适。其实SAS很体贴地不断增加高效的函数来精简你的代码和提高编程速度,可惜很多函数,SASor们并不知晓,常常看到别人使用的时候,才惊叹“原来SAS已经提供了这样的函数,我编了半天小算法”,或者“白费这么大劲,编了个宏”等等。这里按类列出SAS9.2版本的函数,供大家参考。 按不同的使用环境,SAS一共有七大类函数: 一,常规函数;二,windows环境下函数;三,OpenVMS虚拟内存环境下函数;四,z/OS操作环境下函数,五,宏语言函数;六,多国语言函数,七,其他函数 第一类函数常规函数最常用,数量也最多,这里依次列出所有的常规函数。 Character 字符函数

相关文档