美文网首页橙子学院-30天专注橙长计划
R2 | #30天专注橙长计划#~SAS~Day 13

R2 | #30天专注橙长计划#~SAS~Day 13

作者: 胡阿白 | 来源:发表于2016-10-30 17:21 被阅读0次

    2.19临时和永久数据集

    SAS临时数据集只在目前工作或会话中存在,关闭SAS或结束工作时则删除;永久数据集当关闭SAS或结束工作时仍然存在。

    SAS数据集名所有的SAS数据集都有用句号分开的两层数据集名,如work.a。第一层前缀work是逻辑库名,第二层是在逻辑库中用于辨别自己的成员名。

    名字的规则是,以字母或下划线开头,并且名字中只能包含字母、数字和下划线。而且,库名不能超过8个字节,而成员名却可以达到32个字节。大部分数据集通过数据步创建,过程步也可以创建。如果指定了一个前缀不为work的两层数据集名,则这个数据集就是永久的。如果不指定前缀,则默认数据集是临时的,自动分配到work逻辑库中。下面是一些数据集名,对于的逻辑库,成员名,类型:

    临时数据集 如下的程序创建并打印了一个名为DISTANCE的永久数据集:

    这里,只指定了成员名distance,自动分配到work库中,日志窗口中有说明:

    NOTE:The data setWORK.DISTANCEhas 1 observati ons and 2 vari abl es.

    永久数据集可以在资源管理器窗口中定义一个新库使用:

    也可以通过如下程序:

    那么日志窗口就会出现如下说明:

    NOTE:The data setMYLIB.DISTANCEhas 1 observati ons and 2 vari abl es.

    这是一个永久数据集,因为前缀不是work。

    2.20 LIBNAME语句使用永久数据集

    LIBNAME语句的基本形式为:LIBNAME libref’your-SAS-data-library’;

    LIBNAME的后面,需要指定库名和存放的路径,在个人操作环境下LIBNAME语句的基本形

    式为:

    创建永久数据集如下的例子创建了一个永久SAS数据集,包含了magnolia trees的一些信息。每一种树,原始文件都包含它的科学名、普通名、最大高度、第一次开花的年龄、是evergreen还是deciduous、以及花的颜色。

    下面的代码将会创建一个PLANTS的逻辑库,路径为C盘下的MySASLib。然后从原始文件Mag.dat中读取数据,并创建一个名为MAGNOLIA的永久数据集,存在PLANTS库中。

    日志窗口会出现如下说明:

    NOTE:The data setPLANTS.MAGNOLIAhas 5 observati ons and 6 vari abl es.

    如果在电脑中打印文件的地址目录,会发现文件名不是PLANTS.MAGNOLIA。这是因为操作系统有自己对文件命名的方式,这个文件,在Windows,UNIX,和OpenVMS操作环境中名字为magnolia.sas7bdat,在OS/390或者z/OS环境中,文件名就会如LIBNAME语句中定义的data-set-name形式。

    读取永久数据集如果你想打印出上例中创建的数据集,可以用如下语句:

    这次LIBNAME语句中的库名为example,但缺失同样路径,逻辑库名可以改变,但成员名MAGNOLIA却一样。输出如下:

    2.21通过直接指代使用永久数据集

    可以通过直接指代来使用SAS数据集,且不需要自己定义,SAS为你做好。

    直接指代,依据系统不同,使用方法也不同,如下:

    可以看到,一些系统的语句中需要指出路径,但如果遗漏了路径,SAS自动使用当前路径,比如这样一个创建名为trees的永久数据集的代码:

    DATA ‘trees ’;

    UNIX和OPENVMS操作环境下,当前的路径默认为启动SAS的路径,可以通过工具(TOOLS)下拉菜单的选项(OPTIOPN)菜单来改变这种默认,windows环境下当前路径会显示在SAS窗口底部。可以通过双击这个路径来改变默认。

    例子如下还是关于magnolia trees的这个例子,

    下面的代码将从原始文件mag.dat中读取数据,创建一个名为MAGNOLIA的永久数据集,存放在C盘的Mysaslib路径中:

    相应的输出窗口显示如下:

    NOTE:The data set c:\MySASLi b\magnol i a has 5 observati ons and 6 vari abl es.

    如果打开MySASLib文件夹,会发现一个名为magnolia.sas7bdat的文件。在没指定库的情况下,SAS会自动为你创建一个库,在资源管理器窗口中可以看到,下图是SAS为magnolia创建的库。

    用直接指代读取SAS数据集 可以直接用引号+路径的方式读取永久数据集,比如打印magnolia数据集可以:

    2.22列出SAS数据集目录

    由于SAS是自文档化,即在自动储存了数据集的信息,因此可以通过contents过程来查看SAS数据集的描述。

    Proc contents data=data -set

    如果遗漏了data=的语句,SAS自动列出最近创建的数据集

    例子 如下的程序创建了一个数据集,并且使用proc contents。数据步中使用了label语句,label语句为变量打上标签,并储存在数据集中,在打印时会显示。过程步中也可以使用label,但只在proc contents中有效,不会储存在数据集中。Informat和format可以指定信息和格式,储存在数据集中,也可以在过程步中使用,但不储存在数据集中。

    输出如下:

    相关文章

      网友评论

        本文标题:R2 | #30天专注橙长计划#~SAS~Day 13

        本文链接:https://www.haomeiwen.com/subject/reruuttx.html