sas 知识基础学习(上篇) sas 有两种语句: 数据步和过程步。在 sas 中,通过数据步和过程步来使用 sas 语言的元素。 数据步:是一组语句组合:从外部文件中读取数据;将数据写入到外部文件中;读取 sas 数据文件和视图;创建 sas 数据文件和视图。 过程步: 对 sas 数据集进行分析和产生报表。例如:对数据集进行分析、画图、查询和打印等操作。 逻辑库: 由一组 sas 文件组成。 sas 软件系统的信息组织有两层,第一层是 sas 逻辑库,第二层是 sas 文件。 sas 逻辑库是一个逻辑概念,本事并不是物理实体,它对应的实体是操作系统下一个文件夹或几个文件夹中的一组 sas 文件。 sas 逻辑库是一组存储在同一目录下被同一引擎访问的文件,其他文件也可以存放在该目录下,但是只有能被 sas 识别的文件才能显示在逻辑库中。 建立 sas 逻辑库: 用 libname 语句 libname libref engine'sas-data-library' 其中 libref 是逻辑库名, sas-data-library 是逻辑库对应的物理地址, engine :引擎名称。 libname resdat 'D:\resdat'; 创建逻辑库 resdat ,对应的物理文件夹为 D:\resdat libname a ('d:\resbd\','d:\resfin\'); 多个文件夹创建一个 sas 逻辑库 临时逻辑库: 指它的内容只在启动 sas 时存在,退出 sas 时内容完全被删除。系统默认的临时逻辑库为 work ,引用临时库中的文件时,可以不加库名 work 。 永久逻辑库: 它的内容在 sas 关闭对话之后仍旧保留,直到再次修改或删除。 sas 除了 work 以外的逻辑库都是永久库。引用永久逻辑库的文件时必须加上永久逻辑库名。例如: sashelp.Abmfolder 库引擎: 是一组规定格式想逻辑库读写文件的内部命令。每个 sas 逻辑库都对应一个库引擎。 sas 逻辑库引擎是软件的一个元件用来组建 sas 与 sas 逻辑库之间的接口。 库引擎功能: 读取和写入数据;列出库中的文件;删除和重命名文件。 数据集分类: sas 数据集有两类: sas 数据文件 ; sas 数据视图 。 sas 数据文件 同时描述信息和存储数据值,而 sas 数据视图则并不实际上存储数据,实际上 sas 数据视图就是一个查询语句。 这个查询语句建立了一个逻辑数据集,每次打开 sas 数据视图就相当于运行了一次查询语句。 注意:这两个数据文件在同一级目录或逻辑库下不能同名。 数据集构成:描述信息,数据值。 数据文件: sas 数据文件是包含描述信息和数据值的 sas 数据集。 普通的 sas 数据文件: sas 格式的数据文件。 接口数据文件: 以其它数据软件格式储存数据的数据文件。 sas 数据文件和 sas 数据视图最大区别就数据文件实际储存数值,视图只是包含表的描述信息以及一组用来读取数据的查询语句,并不实际存储数据。 数据文件是静态的,而视图则是动态的;视图每次打开就相当于运行了异常查询语句,只有数据源发生变化,打开试图就会发生变化,而数据文件 只有自身被修改时才会发生改变。 sas 视图: native view :由数据步或 sql 过程创建 interface view :由 sas 软件创建。 数据步视图: 包含用于从多个数据源中读取数据的数据步程序:原始数据文件; sas 数据文件; proc sql 视图; sas/access 视图 定义格式: data 数据集名称 /view= 数据集名称 ; ... sas 语句 ; .... run; 上面的定义中,在 data 步中的最后一个数据集名称后加上 "view= 数据集名称 ", 告诉 sas 程序进行编译,但不运行,而被编译的程序编码则 储存在 view 后的数据视图中。 例如:创建数据步视图: data resdat.class1/view=resdat.class1; set resdat.class; run; proc sql 视图: 是一个带有名称的 proc sql 查询。它可以读写的数据源同数据步视图。 例如 : proc sql; create view resdat.e as select * from resdat.class; quit; 表词典: 是一个包含多个 sas 系统信息的 sas 数据视图。下面是一个使用 proc sql 查询表词典的例子 : proc sql; select libname,memname,memtype,nobs from dictionary.tables where libname='CE1'; quit; 使用 proc sql 来查询所需要的表词典,这些表储存在 dictionary 逻辑库中。 输入输出格式: $ 指定为字符格式,如果该项空缺,则默认是数值格式; format: 规定有效 sas 输出格式; informat :规定有效 sas 输入格式; w :设定输入输出的长度,一般是数据所占的列的数目; d :设定数值数据中小数点的位数; sas 系统选项: options option(s); --option 设定一个或多个系统选项。 options obs=5; -- 取数据集的前 5 个观测(行), obs : observations