SAS 创建临时与永久数据集
前提
SAS 中所有的数据集都保存在逻辑库中,所有的数据集都有用句号隔开的两层数据集名,如 work.a ,第一层前缀 work 是逻辑库名,第二层前缀 a 是数据名,是在逻辑库中用于辨别自己的成员名。
数据名命名的规则:以字母或下划线开头,并且只能含有字母、数字和下划线。其中逻辑库名不能超过 8 个字节,成员名,即数据名不能超过 32 个字节。
临时数据库
大部分数据集通过 DATA 步创建,PROC 步同样可以创建数据集。
如果创建数据集时不指定前缀或指定前缀为 work ,则默认数据集是临时的,自动分配到 work 逻辑库中。 例:
DATA distance;
miles = 26.22;
kilometers = 1.61 * miles;
PROC PRINT DATA = work.distance; /% 这里同样可以直接写 distance %/
run;
这里利用 DATA 步创建的 distance 数据库全名应为 work.distance ,即它默认保存在了 work 逻辑库中,是个临时数据集。
永久数据集
如果创建数据集时指定了一个前缀不为 work 的两层数据集名,则这个数据集就是永久的。 例:
DATA Mylib.distance;
miles = 26.22;
kilometers = 1.61 * miles;
PROC PRINT DATA = Mylib.distance;
run;
这里利用 DATA 步创建了数据集 Mylib.distance 前缀不为 work ,所以该数据集保存在逻辑库 Mylib 中,为永久数据集。 注意:利用这种方法创建永久数据集时应先建立逻辑库,如例中的Mylib 。
用 Libname 创建永久数据集
上述方法在创建永久数据集时应先通过选项卡建立逻辑库,而用 Libname 语句可以直接在代码编辑框创建逻辑库。 例:
LIBNAME Mytest 'c:\MySASLib' /* 用 libname 语句创建逻辑库,并保存在指定路径 */
DATA Mytest.distance;
miles = 26.22;
kilometers = 1.61 * miles;
PROC PRINT DATA = Mytest.distance;
run;
以上的代码将会创建一个 Mytest 的逻辑库,保存路径为 C 盘的 MySASLib 中。然后创建一个名为 distance 的永久数据库,保存在 Mytest 逻辑库中。
参考文献
Lora D.Delwiche and Susan J.Slaughter. The Liitle SAS Book[M]
|