首页 理论教育 使用libname语句导入已定变量数据体形成SAS数据集

使用libname语句导入已定变量数据体形成SAS数据集

时间:2023-08-10 理论教育 版权反馈
【摘要】:libname语句配合数据引擎能直接导入更复杂的商业已定变量数据体文件,例如能访问DB2、Oracle、Sybase等数据库,具体能访问哪些类型的已定变量数据体文件依据SAS版本而定。libname语句建立一个SAS临时逻辑库和外部逻辑库间的关联。libname语句的一般形式是:当读入SAS的已定变量数据体文件时可以不写数据引擎名,这时默认数据引擎为v9。例3.10读取驱动器D上文件夹wu中SAS数据集文件pdv2,将之存于临时文件test1。

使用libname语句导入已定变量数据体形成SAS数据集

libname语句配合数据引擎能直接导入更复杂的商业已定变量数据体文件,例如能访问DB2、Oracle(甲骨文公司数据库)、Sybase(Sybase公司数据库)等数据库,具体能访问哪些类型的已定变量数据体文件依据SAS版本而定。访问这些数据库的方法是建立某个SAS逻辑库,再通过数据引擎关联所需数据的逻辑库,构成所谓SAS文件。这个SAS文件的数据存于外部文件(例如DB2、Oracle或Sybase等数据库),为了避免损坏被导入的外部数据文件,通常在建立这种SAS文件后立即用set语句把已定变量数据体拷入临时文件,然后对临时文件加工或使用。

libname语句建立一个SAS临时逻辑库和外部逻辑库间的关联。libname语句的一般形式是:

当读入SAS的已定变量数据体文件时可以不写数据引擎名,这时默认数据引擎为v9。逻辑库名就是所形成SAS逻辑库的名称。

例如,想把D:\winu中的SAS已定变量数据体文件examp1导入SAS,可用语句“libname ww v9'd:\winu';”。该语句的含义是建立SAS逻辑库ww,它和驱动器D上的winu库关联,所通过数据引擎是v9。这时如果想把D:\winu的文件examp1导入,SAS自动通过数据引擎把D:\winu的文件examp1关联所谓SAS文件ww.examp1(ww.examp1是SAS文件,该文件实体不在SAS系统,但是通过数据引擎可以在SAS内使用),为了令D:\winu\examp1不被改变,用SAS语句“set ww.examp1;”就能把D:\winu中的文件examp1拷贝为临时文件。

例3.10 读取驱动器D上文件夹wu中SAS数据集文件pdv2,将之存于临时文件test1。

解 可以使用如下程序:

得到的结果是:

导入其他商业数据库文件时,基本原理不变,但是语句复杂得多。(www.xing528.com)

每当退出SAS系统后,所建立的逻辑库名及形成的逻辑库(例3.10中的库lib)、数据引擎(例3.10中的v9)都不存在了,相应库中所谓SAS文件也(例3.10中的lib.pdv2)自动消失。因此结束SAS前,必须考虑通过数据引擎建立的所谓SAS文件是否需要保存,如需保存应当将该文件导入work库中的临时文件加以保存。

有时通过数据引擎关联的外部文件太大,变量很多,只想拷出少量变量。但又不能确定数据集中变量的名称和顺序,可以用contents过程的varnum选项来查看。下面的代码列出了Oracle数据库中文件sale的变量名:

练习题1 将D:\wu中SAS的已定变量数据体文件D:\wu\pdv2导入SAS形成临时文件ex2并且打印。

练习题2 用contens过程给出已定变量数据体文件D:\wu\sastest的变量名。

提示:可用以下程序:

练习题3 将D:\wu中SAS的已定变量数据体文件D:\wu\sastest导入SAS形成临时文件test3并且打印。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈