一、逻辑库、数据集、数据字典
 数据字典>逻辑库>数据集
 
 逻辑库=工作空间,存储四类内容,test是数据集文件,views是视图(相当于R里面的views点击查看),formats代表文件,sasmacr代表目录内容。
 
 数据集,包括数据文件+SAS视图,可以像R中双击获取数据结构图表,不过这样效率较低,可以使用其他方法,譬如数据字典的方式describe view,详细内容见三、数据查看。
 
数据字典,是当年进程中所有内容的逻辑库、数据表的一个平铺、列出来。所以,在全局检索上十分有效。我觉得这个非常有用,不过貌似网上对其的定义比较少。
 
 
code解读:
libname建立逻辑库,相当于R中的workspace中的一个文件夹;
data代表数据表格,data.frame;
与R数据输入不同的是,数据之间不是用逗号,而是空格来进行分割。
 
 
1、关于libname
如果,没有libname步骤,直接,data,那么就默认存放在SAS中的默认逻辑库之中,默认逻辑库名字叫“work”。
代表删除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  | 
打开explorer window,在SASHELP这个library下,以V开头的视图实际上是Dictionary table内容的复制。如
proc sql;describe view sashelp.voption;quit;
 
 
或者
proc contents data=sashelp.voption;
run;或者在command栏输入viewtable sashelp.voption。
——————————————————————————————————————————
 
 
二、SAS的数据导入与其他平台接入方式
 
 
SAS获取数据的几个方式:外部数据导入、passthrough方式、import方式、input方式。大多通过libname来调入。
1、数据库外部接入
还有RODBC访问。
2、外部导入,spss数据
3、oracle数据集,外部接入
4、input方式导入数据
input里面有很多小符号,譬如@@ 和@的区别,$&。不过,也正是这些符号,让我觉得... 导个数据也忒费劲了...不过,这个也是数据输入中最复杂的问题了。。
关键就在这指针问题上,
@代表指针还在这行,只能罩着下一个input,如果没有两个input,那么跟没有@一样,直接跳到下一行;接下来一个有,则相当于指针在这行;
@@代表指针一直在同一行;
没有@,代表指针跳到下一行。
 "$",表示字符型变量,&代表数值型。
 
@只能在输入数据“1 2 3”之后要换行输入“4 5 6”才能被识别
@@可以无视这个,因为其关注“input xxx”,可以直接在cards;后输入数据“1 2 3 4 5 6”,系统自动识别为两组数据
参考百度文库:
——————————————————————————
两个都是行控制符(就是SAS阅读你的数据时,在每一行里面的阅读数)
@ 表示执行下一个操作时,指针移到下一个记录(也就是下一行)。
@@表示执行下一个操作,指针保持在当前记录(当前行)。
举个例子:(数据录入我使用两种方式,以便于看出@与@@的阅读区别)
(1):录入数据时占用一行的空间
(阅读结果如下)
data a: (此时SAS仅仅读了1次,显然没有读完,就跳到下一行阅读下一个数据,因为下一行没有数据可读,所以就读了一次就完了)
(阅读结果如下)
 
 
(2):录入数据时占用多行空间
(SAS阅读情况如下)
(SAS阅读情况如下)
 
 
——————————————————————————————————————————
 
 
三、数据查看方式:content/data/proc sql三种方式
 
 
数据查看也有很多方式,譬如content、data/proc sql包括双击也是一种方式,一共四种方式。
1、content方式
 查询数据的内容(summary)  针对一些头文件里面的隐藏数据集,可以用这样的方式看到,类似summary,不过内容没有那么详细。
 
out代表将查询内容打印出来,并存放在临时逻辑库work之中。
2、data方式
3、sql方式