SAS数据集
sas数据集是由sas创建并且处理的文件
浏览描述部分
contents过程可以显示sas数据集的描述部分
procproc contents DATA=SAS-data-set +变量名;
run;
SAS逻辑库
SAS逻辑库就是SAS文件的集合。
如果将SAS逻辑库看成是文件柜中的一个抽屉,那么一个SAS数据集就是抽屉中众多文件夹之一。
逻辑库引用名(libref)
work是SAS的临时库,如果我们直接创建data数据集,而没有写libref时,默认的是创建了一个临时数据集,此时对应的逻辑库就是Work逻辑库;
SAS中也有永久库,叫做sasuser,当然我们也可以创建自己的逻辑库,
LIBNAME libref "SAS-data-library"<option>
libname orion "s:\workshop";
其中orion是逻辑库名,”s:\workshop”是指SAS数据库中物理位置。
在这个我们自己创建的逻辑库中,每个SAS文件有一个二级名称。
数据集orion.sales是orion逻辑库的一个SAS文件
第一级名称:libref指引到逻辑库中;
第二级名称:指引到逻辑库中的文件;
SAS注释
/* comment */
*comment
SAS变量值
变量值的类型:分为数值型变量和字符型变量
缺失值:字符型缺失值显示为空格,数值型缺失值显示为句点
浏览数据部分
proc print data=数据集名称 +需要浏览的变量;
run;
浏览数据部分和浏览描述部分是不一样的,注意区分开开
PROC PRINT DATA=SAS-data-set NOOBS;
VAR variable(s);
RUN;
NOOBS选项去掉了报告左侧的观测数列,即obs一列
Var语句选择报告中显示的变量及顺序。
默认情况下,proc print 显示以下内容:
所有观测,所有变量和左侧增加的类似于一个编号类的Obs一列,叫做观测类吧,我猜
读取数据集
内容大纲
读入数据简介
SAS数据集加工
读入Excel工作表
读取带分隔符的原始数据文件
访问关系型数据库
这一节内容的话是我们处理数据的第一步,也就是接触数据的部分,我们的数据来源在这里分成了三种情况,第一种是本来就是SAS数据集,第二种是excel数据,第三种是带分隔符的原始数据,也就是csv数据。
读入SAS数据集
LIBNAME libref 'SAS-data-library';
DATA output-SAS-data-set;
SET input-SAS-data-set;
WHERE where-expression;
KEEP variable-list;
LABEL variable = 'label'
variable = 'label'
variable = 'label';
FORMAT variable(s) format;
RUN;
data work.subset1;
set orion.sales;
where Country='AU' and
Job_Title contains 'Rep';
keep First_Name Last_Name Salary
Job_Title Hire_Date;
label Job_Title='Sales Title'
Hire_Date='Date Hired';
format Salary commax8. Hire_Date ddmmyy10.;
run
下面就讲解这段代码,首先解释几个语句。
libname
这是我们之前就提到的逻辑库的概念,也就是你的文件夹的名字,你的数据是放在哪个文件夹中的。
如果正在读入或者创建一个永久数据集,则需要分配逻辑库的引用名(libref)
libname orion 's:\workshop';
这里是读入SAS数据集。
这里的orion是逻辑库名,
‘s:\workshop’;是SAS数据库的物理位置。
libname orionxls 's:\workshop\sales.xls';
这里的orionxls是逻辑库名,
’s:\workshop\sales.xls’;是指excel工作表的物理文件名,包括路径、文件名和扩展名。
data
data数据集呢是你创建的要放入SAS中的数据集,也就是你要把读入的数据放到哪个数据集中。
问题:要输出到过程步的数据集和你最终要输出的数据集之间有什么关系?
也就是你要输出到过程步的数据集
DATA output-SAS-data-