1.数据集存储和调用
SAS调用数据集一般是二级形式,即libref.filename,libref是用户定义的数据库名称,filename是SAS数据集名称;如果用户提前分配了USER数据库,则调用数据集的时候只有一级即数据集名称(filename)时,SAS会自动补全USER数据库名在数据集名称前,以调用该数据库内的SAS数据集,不然SAS只会自动补齐WORK在SAS数据集前,如:WORK.DATA。
sas数据集名称规则:
a)1-32个字符间,b) 以下划线_或英文字母开始;3)后可接英文字母、数字和下划线
SAS包括很多文件类型,其中之一是SAS数据集(DATA TYPE)。
2.SAS数据集内容
a) 描述部分:
数据描述:数据集名称(或标签)、创建时间、观测数和变量数
变量描述:变量名、标签(label)、类型(numeric/character)、长度(length)、输入格式(informat)和输出格式(format)
变量名拥有与数据集命令相同的规则。
b) 数据部分:由行(个体观测)和列(变量)构成的长方形的数据表
数值变量(numeric)缺失由点"."表示,字符变量(character)缺失由空格表示;
字符变量长度为1-32767字节;数值变量默认长度是8,所有数值不论是否含小数点均以8字节的浮点型进行储存。
标签长度为1-256字节;
3.SAS lIbrary
a) Sashelp: 永久数据库,包含SAS样本数据集和其他控制SAS工作的文件,只读文件夹;
b) Sasuser: 永久数据库,在profile目录里面存放了个人设置的SAS文件
c) Work:临时数据库,
libname libref "path" 定义数据库libref的方式,libref必须是不超过8个字节,以下划线_或字母开头,后接下划线、字母或数字。
使用libname不仅可以读取SAS格式的数据,还可以通过使用不同的engine读取其他格式的数据:
libname libref engine "path" ,使用engine读取的时候path必须定义到文件名;比如:
libname rptdata spss "g:\myspss.dat";
engine 文件
BMDP 只读BMDP文件
OSIRIS 只读OSIRIS文件
SPSS 只读SPSS文件
EXCEL 只读xls文件
LOTUS 只读wkn文件
4.proc content
proc contents data=libref._all_ nodetails;
run;
_all_表示对该数据库内的所有文件打印信息,nodetails(nods)表示不打印每个文件变量名具体内容
还可以使用proc datasets;
contents data=sasuser._all_ nods/varnum(按变量出现顺序展示);
quit;
来输出数据集或数据内容信息, 与proc contents 不一样的是,默认的libref是在该proc步输入的数据库名称。
5.全局options语句
options nonumber nodate(不输出页码和日期)
options date(输出日期) ;
options nodate pageno=3 表示输出页面的起始值为3
options pagesize=15(控制每页输出的行数为15行,超过的行数会自动放入下一列)
options linesize=64(控制每行的宽度:64个字符,超过的字符数会自动放入下一行)
options yearcutoff=1920 (默认的100年跨度的起始年份,用于为2位数年份自动添成四位数)
1920年为起始年度,则终止年份为2019年。其关于年份的补足如下:
两位数 四位数
12/07/41 12/07/1941
18dec15 18dec2015
04/15/30 04/15/1930
15Apr95 15Apr1995
options firstobs=10(起始行数) obs=20(终止行数)
在数据集名称后面使用firstobs=和obs= 则只对该数据集应该该选项;
proc print data=sasuser.heart(firstobs=4 obs=20);
run;
option FORMCHAR="formatting-characters" (在proc 步之间插入分隔符)
FORMDLIM="delimiting-characters" (在插入分页符,默认为空,自动分页)
LABEL(默认) /NOLABEL (开发LABEL则需要proc步中的label 语句代替变量名输出,NOLABEL则proc步的label 语句不会执行)
OBS=N
SOURCE(默认)/NOSOURCE(SOURCE表示将SAS 程序输出至日志,NOSOURCE表示不将SAS程序输出至日志)
可以使用
PROC OPTIONS ;
RUN;
来查看SAS所有设置的options选项,也可以使用
proc options option=yearcutoff ;run;来查看具体的选项设置内容