2024-06-12 base SAS programming学习笔记(LIBNAME)

1.数据集存储和调用

        SAS调用数据集一般是二级形式,即libref.filename,libref是用户定义的数据库名称,filename是SAS数据集名称;如果用户提前分配了USER数据库,则调用数据集的时候只有一级即数据集名称(filename)时,SAS会自动补全USER数据库名在数据集名称前,以调用该数据库内的SAS数据集,不然SAS只会自动补齐WORK在SAS数据集前,如:WORK.DATA。

        sas数据集名称规则:

           a)1-32个字符间,b) 以下划线_或英文字母开始;3)后可接英文字母、数字和下划线

SAS包括很多文件类型,其中之一是SAS数据集(DATA TYPE)。

2.SAS数据集内容

a) 描述部分:

        数据描述:数据集名称(或标签)、创建时间、观测数和变量数

        变量描述:变量名、标签(label)、类型(numeric/character)、长度(length)、输入格式(informat)和输出格式(format)

        变量名拥有与数据集命令相同的规则。

b)    数据部分:由行(个体观测)和列(变量)构成的长方形的数据表

                        数值变量(numeric)缺失由点"."表示,字符变量(character)缺失由空格表示;

                        字符变量长度为1-32767字节;数值变量默认长度是8,所有数值不论是否含小数点均以8字节的浮点型进行储存。

                        标签长度为1-256字节;

3.SAS lIbrary 

        a) Sashelp: 永久数据库,包含SAS样本数据集和其他控制SAS工作的文件,只读文件夹;

        b)   Sasuser: 永久数据库,在profile目录里面存放了个人设置的SAS文件

        c)   Work:临时数据库,

libname libref  "path"   定义数据库libref的方式,libref必须是不超过8个字节,以下划线_或字母开头,后接下划线、字母或数字。

使用libname不仅可以读取SAS格式的数据,还可以通过使用不同的engine读取其他格式的数据:

libname libref engine "path"    ,使用engine读取的时候path必须定义到文件名;比如:
libname rptdata    spss    "g:\myspss.dat";

engine            文件

BMDP       只读BMDP文件

OSIRIS     只读OSIRIS文件

SPSS        只读SPSS文件

EXCEL      只读xls文件

LOTUS      只读wkn文件

4.proc content 

proc  contents data=libref._all_  nodetails;

run;

_all_表示对该数据库内的所有文件打印信息,nodetails(nods)表示不打印每个文件变量名具体内容

还可以使用proc datasets;

                        contents  data=sasuser._all_  nods/varnum(按变量出现顺序展示);

                quit;

来输出数据集或数据内容信息, 与proc  contents 不一样的是,默认的libref是在该proc步输入的数据库名称。

5.全局options语句

        options nonumber  nodate(不输出页码和日期)

        options  date(输出日期)     ;

        options  nodate    pageno=3  表示输出页面的起始值为3

        options  pagesize=15(控制每页输出的行数为15行,超过的行数会自动放入下一列)

        options  linesize=64(控制每行的宽度:64个字符,超过的字符数会自动放入下一行)

        options yearcutoff=1920 (默认的100年跨度的起始年份,用于为2位数年份自动添成四位数)

1920年为起始年度,则终止年份为2019年。其关于年份的补足如下:
两位数                     四位数                        

12/07/41                12/07/1941

18dec15                18dec2015

04/15/30                 04/15/1930

15Apr95                 15Apr1995

        options  firstobs=10(起始行数)     obs=20(终止行数)

在数据集名称后面使用firstobs=和obs= 则只对该数据集应该该选项;

        proc print data=sasuser.heart(firstobs=4 obs=20);

        run;

        

        option    FORMCHAR="formatting-characters" (在proc 步之间插入分隔符)

                        FORMDLIM="delimiting-characters" (在插入分页符,默认为空,自动分页)

                        LABEL(默认) /NOLABEL   (开发LABEL则需要proc步中的label 语句代替变量名输出,NOLABEL则proc步的label 语句不会执行)

                        OBS=N 

                        SOURCE(默认)/NOSOURCE(SOURCE表示将SAS 程序输出至日志,NOSOURCE表示不将SAS程序输出至日志)

可以使用

        PROC OPTIONS ;

        RUN;

来查看SAS所有设置的options选项,也可以使用

        proc options option=yearcutoff ;run;来查看具体的选项设置内容

                        

                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值