本帖最后由 花映碧水 于 2013-12-29 13:27 编辑 3 c# k* Q& K" r6 P2 t
* d n7 d+ p* w6 b在此首先非常感谢会员“奚鑫”提供资源,为方便大家观看,特此将全文转载到数学中国方便大家直接查阅~
; A6 {5 D% K. o+ R) n9 m/ K. H7 k, B8 ]+ F
要找到我们保存的数据集之前必须清楚一个概念,那就是“SAS逻辑库”。什么是SAS逻辑库?通俗地讲,就是储存SAS数据集的仓库,当然,SAS逻辑库的定义远不是这样,但是为了方便理解,我暂且把它理解成这样。 其实SAS逻辑库是一个逻辑标识,指向一个物理的地址,我们在使用SAS逻辑库的时候其实就是在使用这个物理地址,比如说,一个名为mylib的逻辑库,其指向的物理地址为D:\data,那么我们把一个名为mydata的数据集存储在mylib逻辑库中就是把这个数据集文件存储在路径D:\data下了。 有如下需求: 定义一个名为mylib的逻辑库,其物理地址为D:\data。 使用如下代码完成上面的需求: libname mylib "D:\data"; 按F3,运行代码,查看日志,确认代码运行成功。 代码分析: libname:关键词,用于定义逻辑库; mylib:逻辑库的名称; D:\data:逻辑库的物理地址。 逻辑库的分类: 逻辑库分为两种,一种叫做临时逻辑库,一种叫做永久逻辑库。 什么是临时逻辑库呢?就是临时存储SAS数据集的逻辑库,只要SAS程序关闭,该逻辑库就会消失,我们储存在里面的SAS数据集就会被删除,具有代表性的临时逻辑库就是WORK库。 什么是永久逻辑库呢?就是上面已经说到过的用libname语句声明过的逻辑库,该逻辑库内的文件存储在对应的物理地址上,即使SAS关闭也不会丢失文件。 逻辑库的使用: 改写一下上次的代码, proc import datafile ="D:\data\mydata.xls" dbms = excel out = work.myfile; sheet = "sheet1"; getnames = no; run; 我们将输出的数据集myfile保存在临时逻辑库work下。其实上面的代码和上次的代码是等价的,因为在没有指定SAS数据集属于哪个逻辑库时,默认为work临时逻辑库。 也可以改写成如下代码, libname mylib "D:\data\lib"; proc import datafile ="D:\data\mydata.xls" dbms = excel out = mylib.myfile; sheet = "sheet1"; getnames = no; run; 我们将输出的数据集myfile保存在逻辑库mylib下,对应的物理地址为D:\data\lib。 补充说明: 找到SAS软件的资源管理器或浏览器,打开里面的Libraries,我们自己建立的和系统自带的逻辑库都保存在Libraries下。
7 l- D8 {/ k" i4 u
( H, U# q( C/ p e# u4 j8 i |