一、逻辑库、数据集、数据字典

数据字典>逻辑库>数据集

逻辑库=工作空间,存储四类内容,test是数据集文件,views是视图(相当于R里面的views点击查看),formats代表文件,sasmacr代表目录内容。

数据集,包括数据文件+SAS视图,可以像R中双击获取数据结构图表,不过这样效率较低,可以使用其他方法,譬如数据字典的方式describe view,详细内容见三、数据查看。

数据字典,是当年进程中所有内容的逻辑库、数据表的一个平铺、列出来。所以,在全局检索上十分有效。我觉得这个非常有用,不过貌似网上对其的定义比较少。

[html] view plaincopy print?
  1. libname fv "F:\SAS\SAS 9.4 space";      /*fv是数据库名字*/
  2. data fv.forever;    /*  #forever代表在fv下的forever数据集*/
  3. Input x y z;
  4. Cards;
  5. 1 2 3
  6. 4 5 6
  7. ;
  8. run;

code解读:

libname建立逻辑库,相当于R中的workspace中的一个文件夹;

data代表数据表格,data.frame;

与R数据输入不同的是,数据之间不是用逗号,而是空格来进行分割。

1、关于libname

如果,没有libname步骤,直接,data,那么就默认存放在SAS中的默认逻辑库之中,默认逻辑库名字叫“work”。

[html] view plaincopy print?
  1. libname lb clear;       #删除

代表删除libname

2、关于数据字典

本节参考海纳百川BLOG的:SAS数据字典访问

访问数据字典方法如下:

1.直接用SQL语句访问Dictionary table
2.访问SAShelp View

表名

包含信息

视图名

DICTIONARY.CATALOGS

SAS目录册及所包含的条目

SASHELP.VCATALG

DICTIONARY.COLUMNS

列(或变量)及其特征

SASHELP.VCOLUMN

DICTIONARY.DICTIONARIES

所有表词典

SASHELP.VDCTNRY

DICTIONARY.EXTFILES

文件标识名和外部文件物理存储地址

SASHELP.VEXTFL

DICTIONARY.INDEXES

SAS数据集索引

SASHELP.VINDEX

DICTIONARY.MEMBERS

SAS数据集

SASHELP.VMEMBER

DICTIONARY.OPTIONS

目前设定的SAS系统选项

SASHELP.VOPTION

DICTIONARY.STYLES

ODS类型

SASHELP.VSTYLE

DICTIONARY.TABLES

SAS数据文件和视图

SASHELP.VTABLE

DICTIONARY.VIEWS

SAS数据视图

SASHELP.VVIEW

[html] view plaincopy print?
  1. /*数据字典把当前SAS环境中的所有内容进行汇总归类到这个里面,方便检索*/
  2. proc sql flow=10;
  3. title2 'do the columns have formats,informats,or labels';
  4. title3 'dictionary.columns';
  5. /*#所有表的列变量*/
  6. create table colinf as
  7. select name,type,length,label,format,informat
  8. /*#变量名称*/
  9. from dictionary.columns
  10. where libname='SASHELP' and memname='CLASS';
  11. /*#注意要大写    */

打开explorer window,在SASHELP这个library下,以V开头的视图实际上是Dictionary table内容的复制。如

proc sql;describe view sashelp.voption;quit;

可以看到voption这个视图的内容来自dictionary.options。   而对于View,除了SQL,直接用data步或proc步都可以访问。如

[html] view plaincopy print?
  1. data test2;
  2. set sashelp.vcolumn;
  3. where libname="WORK" and memname="TEST";
  4. run;

或者
proc contents data=sashelp.voption;
run;或者在command栏输入viewtable sashelp.voption。

——————————————————————————————————————————

二、SAS的数据导入与其他平台接入方式

SAS获取数据的几个方式:外部数据导入、passthrough方式、import方式、input方式。大多通过libname来调入。

1、数据库外部接入

[html] view plaincopy print?
  1. /*#数据库,外部接入*/
  2. libname hsdb db2 user=xxuser password="xxxx" datasrc=datadb;
  3. /*  #在逻辑库hsdb中,db2代表数据库名称,datasrc代表SQL中的数据集名称*/

还有RODBC访问。

[html] view plaincopy print?
  1. /*通过RODBC访问 需要设置很多内容*/
  2. libname odb odbc user=*** password=*** datasrc=test;
  3. libname hsdb odbc noprompt="uid=xxxuser;pwd=xxxxx;dsn=datadb;" schema=hsuser

2、外部导入,spss数据

[html] view plaincopy print?
  1. /*SPSS数据集,外部接入*/
  2. libname sps spss '';

3、oracle数据集,外部接入

[html] view plaincopy print?
  1. /*oracle数据集,外部接入*/
  2. libname oralib oracle user=xxx pw=xxx path dbmssrv schema=educ;

4、input方式导入数据

input里面有很多小符号,譬如@@ 和@的区别,$&。不过,也正是这些符号,让我觉得... 导个数据也忒费劲了...不过,这个也是数据输入中最复杂的问题了。。

关键就在这指针问题上,

@代表指针还在这行,只能罩着下一个input,如果没有两个input,那么跟没有@一样,直接跳到下一行;接下来一个有,则相当于指针在这行;

@@代表指针一直在同一行;

没有@,代表指针跳到下一行。

"$",表示字符型变量,&代表数值型。

[html] view plaincopy print?
  1. data test;
  2. infile cards ;
  3. input x @;       /*单个@,能H住,有效期到下一个input语句*/
  4. input y;           /*没有@,H不住,下一个input语句会去读新的一行*/
  5. input z @@;    /*两个@,H住没问题,有效期延长到Data步下一圈*/
  6. cards;
  7. 1 2 3
  8. 4 5 6
  9. 7
  10. ;

@只能在输入数据“1 2 3”之后要换行输入“4 5 6”才能被识别
@@可以无视这个,因为其关注“input xxx”,可以直接在cards;后输入数据“1 2 3 4 5 6”,系统自动识别为两组数据

参考百度文库:

——————————————————————————

两个都是行控制符(就是SAS阅读你的数据时,在每一行里面的阅读数)

@  表示执行下一个操作时,指针移到下一个记录(也就是下一行)。

@@表示执行下一个操作,指针保持在当前记录(当前行)。

举个例子:(数据录入我使用两种方式,以便于看出@与@@的阅读区别)

(1):录入数据时占用一行的空间

[html] view plaincopy print?
  1. data a;
  2. input x y @;(当仅仅使用一个@时)
  3. cards;
  4. 1 2 3 4 2 2 3 5 3 2 1 1 (数据占用一行空间)
  5. ;run;
  6. proc print data=a;
  7. run;

(阅读结果如下)

data a: (此时SAS仅仅读了1次,显然没有读完,就跳到下一行阅读下一个数据,因为下一行没有数据可读,所以就读了一次就完了)

[html] view plaincopy print?
  1. The SAS System     17:52 Saturday, October 27, 2014  23
  2. Obs    x    y
  3. 1     1    2
[html] view plaincopy print?
  1. data b;
  2. input x y @@;
  3. cards;
  4. 1 2 3 4 2 2 3 5 3 2 1 1 (数据占用一行空间)
  5. ;run;
  6. proc print data=b;
  7. run;

(阅读结果如下)

[html] view plaincopy print?
  1. data b(此时SAS读了6次,显然这次是正确的,因为使用@@时,数据在当前行连续阅读)
  2. The SAS System     17:52 Saturday, October 27, 2014  24
  3. Obs    x    y
  4. 1     1    2
  5. 2     3    4
  6. 3     2    2
  7. 4     3    5
  8. 5     3    2
  9. 6     1    1

(2):录入数据时占用多行空间

[html] view plaincopy print?
  1. data a; (当仅仅使用一个@时)
  2. input x y @;
  3. cards;  1 2 3 4
  4. 2 2 3 5  (数据占用三行空间)
  5. 3 2 1 1
  6. ;run;
  7. proc print data=a;run;

(SAS阅读情况如下)

[html] view plaincopy print?
  1. data a:(此时SAS仅仅读了3次,显然没有读完,因为每一行没有连续读完,就开始阅读新下一个数据,也就是光标就跳到了下一行)
  2. The SAS System     17:52 Saturday, October 27, 2014  25
  3. Obs    x    y
  4. 1     1    2
  5. 2     2    2
  6. 3     3    2
[html] view plaincopy print?
  1. data b;
  2. input x y @@;
  3. cards;
  4. 1 2 3 4
  5. 2 2 3 5
  6. 3 2 1 1
  7. ;run;
  8. proc print data=b;
  9. run;

(SAS阅读情况如下)

[html] view plaincopy print?
  1. data b;(此时SAS阅读了6次,显然这次阅读的阅读时正确的,因为每一行都是连续读取之后再读取下一记录,也就是跳到下一行)
  2. The SAS System     17:52 Saturday, October 27, 2014  26
  3. Obs    x    y
  4. 1     1    2
  5. 2     3    4
  6. 3     2    2
  7. 4     3    5
  8. 5     3    2
  9. 6     1    1

——————————————————————————————————————————

三、数据查看方式:content/data/proc sql三种方式

数据查看也有很多方式,譬如content、data/proc sql包括双击也是一种方式,一共四种方式。

1、content方式

查询数据的内容(summary)  针对一些头文件里面的隐藏数据集,可以用这样的方式看到,类似summary,不过内容没有那么详细。

[html] view plaincopy print?
  1. proc contents data=fv.forever out=class;run;

out代表将查询内容打印出来,并存放在临时逻辑库work之中。

2、data方式

[html] view plaincopy print?
  1. data class/view=class1;
  2. set fv.forever
  3. ;
  4. run;

3、sql方式

[html] view plaincopy print?
  1. proc sql;
  2. create view class2 as
  3. select*from fv.forever;
  4. quit;

SAS学习︱逻辑库、数据集创建与查看、数据库链接(SAS与R的code对照)相关推荐

  1. mongodb数据库显示obj_MongoDB创建和查看数据库

    MongoDB 将 BSON 文档(即数据记录)存储在集合中,数据库包含文档集合.在 MongoDB 里面存在数据库的概念,但没有模式,保存数据的结构是 BSON 结构,只不过在进行一些数据处理的时候 ...

  2. plsql 客户端字符集_plsql查看数据库字符集

    oracle字符乱码问题的解决 今天开发人员说在表字段后添加注释出现乱码,但其他开发人员添加注释无此原因,于是判断是其客户端字符集设置问题. 出现乱码的注释如图 解决方法 1 查看客户端字符集 SQL ...

  3. MySQL数据库操作-查看数据库 (SHOW DATABASES)

    数据库可以看作是一个专门存储数据对象的容器,每一个数据库都有唯一的名称,并且数据库的名称都是有实际意义的,这样就可以清晰的看出每个数据库用来存放什么数据. 在 MySQL数据库中存在系统数据库和自定义 ...

  4. Oracle数据库中的同义词,数据库链接和序列

    目录 1.同义词 (1)可视化方法创建同义词 (2)命令方式创建同义词 (3)删除同义词 2.数据库链接 (1)可视化方式创建 (2)使用命令方式 (3)为远程数据库的表创建同义词 (4)删除数据库链 ...

  5. oracle包同义词报错,Oracle——04同义词与数据库链接

    1.同义词: 在分布式数据库环境中,为了识别一个数据库对象,必须规定主机名.服务器名.对象的拥有者和对象名.这无疑增加了访问者的访问难度.为了给不同的用户使用数据库对象时提供一个简单的.唯一标识数据库 ...

  6. java连接oracle设置超时,数据库链接在Oracle 11g上超时

    尝试在同一服务器上的两个数据库之间创建数据库链接时,我确实遇到了Oracle数据库11g的问题 . 我正在使用SQL Developer 4.1.3.20,我使用的查询如下所示: CREATE DAT ...

  7. SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理...

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 ...

  8. SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 ...

  9. SAS学习笔记1——基础知识(库、PDV、变量选择、观测值排序、创建新变量

    SAS学习笔记1--基础知识 1.逻辑库.临时库.永久库 2.数据步 2.1数据步语法 2.2 数据步的编译和执行过程 2.3变量的选择 2.3.1 keep和drop语句 2.4变量的重命名rena ...

最新文章

  1. 面试造飞机系列:用心整理的HashMap面试题,以后都不用担心了
  2. python乘法口诀代码-浅析一句python代码成生九九乘法表
  3. CentOS 7.3镜像挂载搭建本地yum源
  4. 使用JSON Viewer直观查看JSON数据
  5. java基础覆盖——知识库搭建-1
  6. 第二章 ASP.NET MVC (控制器向视图传递值(一))
  7. python做什么模型_用python做模型
  8. Opencv+opencv_contrib安装
  9. JavaScript---轮播图片完整代码
  10. 几个容易中的计算机类核心期刊,几个较容易发表管理类文章的核心期刊(转)...
  11. 互联网计算机远程建立连接怎么回事,qq远程协助一直正在建立连接?最全分析解决方法送上!...
  12. nandflash oob解析
  13. Comparable
  14. Appium+python自动化(六)- 连接模拟器并启动淘宝APP(超详解)
  15. 什么是pptp,什么是vps?两者有何区别?
  16. ibatis mysql存储过程_分步详解 如何在iBatis中调用存储过程
  17. 微信h5支付“网站域名ICP备案主体与商户号主体不一致”的解决方法,H5微信支付 授权函下载
  18. 国家级贫困县摘帽情况分省分年统计(832个)
  19. 服务器系统磁盘分区,服务器磁盘分区教程
  20. 三星被指盗取FinFET芯片专利技术 将被起诉

热门文章

  1. [渝粤教育] 苏州工艺美术职业技术学院 PPT美化设计 参考 资料
  2. 【渝粤教育】国家开放大学2018年秋季 2508T学前儿童语言教育 参考试题
  3. 【渝粤教育】广东开放大学 建筑工程施工 形成性考核 (58)
  4. 【渝粤题库】陕西师范大学200681C语言程序设计 作业(高起专、高起本)
  5. 997西方行政学说 (2)
  6. 【NBIoT无线模块DTU数传电台】串口服务器RS232/RS485端口工业路由信号传输
  7. linux 下对u盘分区吗,linux对中毒u盘分区和格式化
  8. excel数据命令导入mysql_如何将EXCEL数据导入MYSQL
  9. 归一化、标准化和正则化
  10. 建议把英语改成选修的计算机老师,越来越多的人建议高中将英语作为选修课,而非必修课,您认同吗?...