整理的SAS笔记.docx
- 文档编号:3900744
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:9
- 大小:20.60KB
整理的SAS笔记.docx
《整理的SAS笔记.docx》由会员分享,可在线阅读,更多相关《整理的SAS笔记.docx(9页珍藏版)》请在冰豆网上搜索。
整理的SAS笔记
第一章sas是什么
1.SAS系统是一个模块化的集成软件系统;
——数据处理和统计领域的国际标准软件;
——世界领先的数据分析和信息系统;
SAS系统广泛应用于金融、医疗、运输、通迅、政府、科研和教育等领域;
SAS含义
Statistical Analysis System
2.SAS系统的主要四大功能
数据访问
数据管理
数据分析
数据呈现
3.SAS系统对50多种数据源提供了引擎,如:
DB2和Oracle
-------------------------------------------
第二章开始sas程序的讲解
1.sas程序的介绍
有两种程序步组成,数据步和过程步,每个步通常有若干个SAS语句组成;
数据步:
以data语句开始,用于创建和处理SAS数据集;
过程步:
以proc语句开始,主要用户处理SAS数据集;
2.SAS数据集
通常分为两个部分:
描述部分(包含数据属性的信息)和数据部分(包含数值);
数据集的列称为变量(Variable),行称为观测(Observation)。
查看数据集的描述部分:
proccontentsdata=sas_data_set;run;
查看数据集的数据部分:
procprint data=sas_data_set;run;
4.SAS变量的类型
*字符型变量(CharacterVariable)(1-32767字节),均以字母、下划线开头;字符型变量的缺省数据用空格表示;
*数值型变量(NumericalVariable)默认为8个字节的长度,数值型变量的缺省数据用点(.)表示;
5.变量的命名规范:
1-32个字符长度,不区分大小写,以下划线或字母开头
-------------------------------------------
第三章 sas数据仓库
1.每次SAS启动都自动生成三个库标记:
WORK、SASUSER和SASHELP;
2.库的分类
永久性库:
sasuser、sashelp、自定义的库
临时性库:
只有一个,名为WORK,可以省略库标记;每次启动SAS自动生成,结束SAS后库中的数据被自动删除;
用libname指定库标记,如:
libnametemp“e:
\temp\data”;
3.使用关键词_ALL_列出数据仓库中所有的sas文件,使用NODSoption来禁止对数据集的描述
PROCCONTENTSDATA=libref._ALL_ NODS;
RUN;
注意:
NODS选项只能和_ALL_一起联用
-------------------------------------------
第四章数据列表报表
1.print过程
语法格式:
procprintdata=SAS数据集noobs;
var分析变量1分析变量2...分析变量n;
where表达式;
sum求和变量;
run;
Noobs选项:
在PRINT过程中可以用NOOBS选项去掉OBS列;
VAR语句:
控制变量的出现与否以及出现的顺序;
WHERE语句:
控制哪些观测将出现在报表中;它的表达式主要是操作数和操作符,
SUM语句:
计算变量的总合;
2.观测的排序和分组§(sort)和(by)
对数据进行分组并求每组小计,用PRINT过程的BY语句,但必须先对相应的变量进行排序;
如:
procsortdata=temp.empdataout=temp.empdata2;
ByJobCode;
Run;
procprintdata=temp.empdata;
byJobCode;
sumSalary;
pagebyJobCode;/*使产生的报表按组分页*/
run;
-------------------------------------------
第五章:
输出
1.标题和脚注:
在所有的SAS报告中都可以加标题(Title)和脚注(Footnote):
语法格式:
TITLEn‘text’;
FOOTNOTEn‘text’;
特点:
n的取值范围是1-10;
标题出现在每页的顶部;
脚注出现在每页的底部;
如果没有定义标题,缺省的标题是:
“TheSASSystem”;
如果没有脚注就不出现;
没有n的标题和脚注就是:
TITLE1、FOOTNOTE1;
定义的标题和脚注一直有效,知道另一个语句被执行;
带n的标题或脚注被执行后,替代了原先具有同样号码的标题和脚注;
带n的标题或脚注被执行后,取消了更大号码的标题和脚注;
2.LABEL语句:
产生用户化和容易阅读的表头:
如:
label变量1=’标签’ 变量2=’标签’;
属性:
是最大长度为256个字符串;
注意:
在PRINT过程中必须用PRINT语句中的LABEL或SPLIT=选项才能被显示;
在过程步中定义只在该过程中有效;
在数据步中定义就被存在数据集的描述部分与数据集一直有效;
3.format的使用
分类:
系统format和用户自定义format
4.用户自定义format的使用
format变量的语法格式:
<$>format
在VALUE语句中,格式可以赋予为:
A.单个数字:
如:
Procformat;
Valuegender1=’Female’
2=’Male’
Other=’Miscoded’;
Run;
B.某数字范围:
如:
Procformat;
Valueboadfmt low-49=’Below’
50-99=’Average’
100-high=’AboveAverage’;
Run;
C.字符或字符串:
如:
Procformat;
Value $grade ‘A’=’GOOD’
‘B’-‘D’=’PAID’
‘I’,’W’=’POOR’
‘PILOT’=’pilot’
Other=’Miscoded’;
Run;
format的使用步骤:
第一步:
用户创建format
PROCFORMAT;
VALUEformat-namerange1='label'
range2='label'
...;
RUN;
第二步:
应用所创建的format
procprintdata=ia.empdata;
format[$]varialble-nameformat-name;
run;
5.使用ODS创建html报表(利用ODS将SAS输出结果生成HTML格式文件)
ODS--OutputDeliverySystem
语法格式:
ODSHTMLFILE='HTML-file-specification'
产生输出的sas代码
ODSHTMLCLOSE;
第六章创建sas数据集
1.列输入(columninput)
*此模式读入外部原始数据文件,适应文件为:
数据固定在某些列中;
数据只包含标准的数字和字符;
*过程:
a.开始一个数据步,并给数据步命名
b.用infile指明原始数据的存放位置
c.用input指明怎样读取原始数据
*格式:
data库名.数据集名;
infile'文件名(路径)'<选项>;
input变量名<$>起始列-结束列;($用在变量是字符型)
run;
2.格式输入(formattedinput)
*适合用格式输入的外部原始数据文件
数据是固定列;
但含有标准或者不标准字符以及数字的文件;
*语法格式:
dataSAS数据集;
Infile‘外部原始文件’;
INPUT指针控制变量名<$>格式名;($表示字符型变量)
Run;
*指针的控制:
@n移动指针到第几列(绝对位置)
+n把指针移动几个位置(相对位置)
3.输入格式informat
<$>informat-namew.
说明:
$如果是字符型,使用$
informat-name是输入格式的格式名
w是变量总长度
. 句点是必修的分隔符,不能缺少
d 如果是数值型的话,d指定了小数位的长度
4.分配变量属性
变量的临时属性和永久属性:
PROC步可赋予临时属性:
其中的标签只在该步显示时有,并没存在数据集里;
如:
procprintdata=temp.dfwlax label;
LabelDest=’Destination’
FirstClass=’FirstClassPassengers’;
Run;
DATA步可赋予永久属性:
其中的标签被存在数据的描述部分,与数据集一起存在;
如:
datatemp.dfwlax;
Infile‘‘c:
\course\tempdata.dat’;
Input @12Dest$3. @15FirstClass$3.;
Label Dest=’Destination’ FirstClass=’FirstClassPassengers’;
Run;
---------------------------------------------------------------------------------------
第七章数据步程序设计
1.读sas数据集以及创建变量
用DATA步产生SAS数据集的三种方法:
A.数据在作业流中:
DATA语句;
INPUT语句;
CARDS;
数据行;
;
RUN;
B.数据在磁盘上:
DATA语句;
INFILE语句;
INPUT语句;
RUN;
C.数据来自其它SAS数据集:
DATA语句;
SET/MERGE/UPDATE/MODIFY语句;
;
RUN;
2.用已有的数据集创建另一个数据集[set的使用]
DATA新的数据集名;
SETinput-SAS-data-set;
RUN;
3.sas操作符和函数的使用
语法格式:
function-name(argument1,argument2,...)
函数:
sum(argument1,argument2,...);
TODAY();
MDY(month,day,year);
QTR(SAS-date);
MONTH(SAS-date);
WEEKDAY(SAS-date);
4.有条件的程序
语法结构:
简单if语句
IFexpressionTHENstatement;
ELSEstatement;
复杂if语句
IFexpressionTHENDO;
executablestatements
END;
ELSEDO;
executablestatements
END;
设置变量长度
LENGTHvariable(s)$length;
取数据集子集
a.WHERE语句
b.DELETE语句
IFexpressionTHENDELETE;
c.子集IF语句
IFexpression;
使用sas日期常数
格式:
'ddMMMyyyy'd
例如:
(example:
'14dec2000'd)
说明:
'd是必须的,用来把引号里的字符串转换成sas日期
--------------------------------------------------------------------------------------------
第八章数据拼接
1.使用set连接sas数据集
语法格式:
DATASAS-data-set;
SETSAS-data-set1SAS-data-set2...;
RUN;
set中变量重命名
语法格式:
SAS-data-set(RENAME=(old-name-1=new-name-1
old-name-2=new-name-2 .
.
.
old-name-n=new-name-n));
交叉sas数据集,使用by语句
BY语句:
使用BY语句可使生成的数据集按某变量排序,但输入数据集必先按该变量排序过;
语法格式:
DATASAS-data-set;
SETSAS-data-set1SAS-data-set2...;
BYBY-variable;
RUN;
2.MERGEsas数据集(必先排序)
MERGE语法格式:
DATASAS-data-set;
MERGESAS-data-sets;
BYBY-variable(s);
RUN;
IN=选项
格式:
SAS-data-set(IN=variable)
解释:
一个临时的数字类型的变量,其值为0或者1
IN选项,当读入多个SAS数据集时,用IN选项可确定本观测来自哪个数据集;
variable=0表示观测不是来自本数据集
variable=1表示观测是来自本数据集
-------------------------------------------
第九章制作汇总报表
1.基本的汇总报表(freq、mean)
freq报表默认的情况下:
分析每一个变量,显示出每一个数据值,计算出数字类型的每列的百分比,指出每一个变量有多少条观测中有缺失值
用此过程一般有两个目的:
1:
描述过程:
产生频数表和交叉表,可简洁的描述数据;
2:
统计过程:
产生各种统计量(频数、百分比),分析变量间关系;
使用:
A.单项频数表:
PROCFREQDATA=SAS数据集;
TABLES变量;
RUN;
B.双向交叉表:
PROCFREQDATA=SAS数据集;
TABLES行变量*列变量;
RUN;
C.n向交叉表:
PROCFREQDATA=SAS数据集;
TABLESa*b*c*d;
RUN;
如果要一张三向(或n向)交叉表,只要在TABELS语句中用星号将3个(或n个)变量名连接起来。
最后一个变量的值形成列,倒数第二变量的值形成行,其余变量的每一水平(或水平的组合)形成一层.
2.MEAN过程
对数据集中的数值变量计算简单描述统计量(个数、均值、标准差、最大值、最小值);
如:
procmeansdata=temp.crew;
VarSalary;
ClassJobCode;
Run;
3.REPORT程序
REPORT过程将PRINT、MEANS、和TABULATE过程与DATA步报表写法的特点结合起来成为一个强有力的编写报表的过程;它的一般形式:
格式:
PROCREPORTDATA=SAS数据集[选项];
BREAKBEFORE|AFTERbreak变量[/选项];
COLUMN显示变量;
DIFINE处理变量 [/选项];
RBREAKAFTER|BEFORE[/选项];
Run;
例子:
procreportdata=temp.crewnowdheadlineheadskip;
columnJobCodeLocationSalary; /*column:
显示的列*/
defineLocation/order'HomeBase';/*order表示Location是排序变量,引号中的是列抬头*/
defineJobCode/groupwidth=8 'JobCode';/*group说明JobCode是分组变量、width指明变量宽度*/
defineSalary/format=dollar10.; /*format:
输出格式*/
rbreakafter/summarizedol; /*结尾产生一总汇总值,其中dol是两虚线*/
run;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 SAS 笔记