目录
第1章 SAS软件使用入门 001
1.1 SAS语言 002
1.2 SAS数据集 004
1.3 DATA步和PROC步 006
1.4 DATA步的内置循环 007
1.5 选择提交SAS程序的模式 009
1.6 SAS窗口环境下的窗口和命令 011
1.7 在SAS窗口环境中提交程序 013
1.8 阅读SAS日志 016
1.9 查看结果018
1.10 SAS数据逻辑库 020
1.11 在VIEWTABLE窗口中查看数据集 024
1.12 用SAS资源管理器查看数据集属性026
1.13 使用SAS系统选项 028
第2章 导入数据到SAS 031
2.1 导入数据到SAS的方法 032
2.2 使用VIEWTABLE窗口输入数据034
2.3 使用导入向导读取文件036
2.4 指定原始数据位置039
2.5 读取空格分隔的原始数据042
2.6 读取按列排列的原始数据044
2.7 读取非标准格式的原始数据046
2.8 常用输入格式049
2.9 混合的输入样式051
2.10 读取杂乱的原始数据053
2.11 为每个观测读取多行原始数据055
2.12 从每行原始数据读取多个观测058
2.13 读取原始数据文件的一部分059
2.14 在INFILE 语句中使用选项控制输入061
2.15 使用DATA 步读取分隔文件 064
2.16 使用IMPORT 过程读取分隔文件066
2.17 使用IMPORT 过程读取Excel 文件069
2.18 临时和永久SAS 数据集071
2.19 通过LIBNAME 语句使用永久SAS 数据集 074
2.20 通过直接引用使用永久SAS 数据集076
2.21 列出SAS 数据集中的内容079
第3 章使用数据 083
3.1 创建和重定义变量084
3.2 使用SAS 函数086
3.3 常用SAS 字符函数088
3.4 常用SAS 数值函数090
3.5 使用IF-THEN 语句 092
3.6 用IF-THEN/ELSE 语句分组观测 095
3.7 提取数据的子集097
3.8 使用SAS 日期099
3.9 常用日期输入格式、函数和输出格式102
3.10 使用RETAIN语句与求和语句 104
3.11 利用数组简化程序 106
3.12 使用变量名列表的快捷方式108
第4章排序、打印和汇总数据 113
4.1 使用SAS过程 114
4.2 使用 WHERE语句在过程中生成子集116
4.3 使用 PROC SORT 对数据排序 118
4.4 更改字符数据的排序顺序120
4.5 使用PROC PRINT打印数据123
4.6 使用输出格式更改打印值的外观125
4.7 可供选择的标准输出格式127
4.8 使用 PROC FORMAT 创建自己的输出格式 130
4.9 编写简单的自定义报表132
4.10 使用PROC MEANS汇总数据 134
4.11 将汇总统计量写入 SAS 数据集 136
4.12 使用 PROC FREQ 为数据计数 139
4.13 使用 PROC TABULATE 生成数据报表 141
4.14 将统计量添加到PROC TABULATE输出 143
4.15 美化PROC TABULATE输出 145
4.16 更改PROC TABULATE输出的表标题 147
4.17 为PROC TABULATE输出的数据单元格指定多种输出格式 150
4.18 使用PROC REPORT生成简单输出 151
4.19 在PROC REPORT中使用DEFINE语句 153
4.20 使用PROC REPORT创建汇总报表 156
4.21 在PROC REPORT输出中添加汇总分割 158
4.22 在PROC REPORT输出中添加统计量 160
4.23 在PROC REPORT输出中添加计算变量 162
4.24 在过程步中使用用户自定义输出格式分组数据165
第5 章使用输出交付系统(ODS)增强输出 169
5.1 初识输出交付系统170
5.2 追踪和选择过程步输出结果172
5.3 从过程步输出中创建SAS 数据集174
5.4 创建文本输出177
5.5 创建HTML 输出 179
5.6 创建RTF 输出 181
5.7 创建PDF 输出184
5.8 自定义标题和脚注186
5.9 通过“STYLE=”选项自定义PRINT 过程输出 188
5.10 通过“STYLE=”选项自定义REPORT 过程输出190
5.11 通过“STYLE=”选项自定义TABULATE过程输出192
5.12 在输出中添加信号灯效果195
5.13 样式属性列表197
第6 章修改和合并数据 201
6.1 使用SET 语句修改数据集 202
6.2 使用SET 语句堆叠数据集 204
6.3 使用SET 语句交错连接数据集 206
6.4 使用一对一匹配合并数据集208
6.5 使用一对多匹配合并数据集211
6.6 合并汇总统计量和原始数据213
6.7 合并总计与原始数据215
6.8 通过事务更新主数据集217
6.9 使用OUTPUT 语句输出多个数据集219
6.10 使用OUTPUT 语句将一条观测变为多条观测222
6.11 使用SAS 数据集选项 224
6.12 使用“IN=”选项追踪和选择观测226
6.13 使用“WHERE=”选项选择观测 228
6.14 使用PROC TRANSPOSE将观测转置为变量 231
6.15 使用SAS自动变量 233
第7章 使用SAS宏编写灵活的代码 237
7.1 宏概述238
7.2 用宏变量替换文本239
7.3 拼接宏变量与其他文本242
7.4 使用宏创建模块代码244
7.5 向宏添加参数246
7.6 编写带条件逻辑的宏248
7.7 使用CALL SYMPUT编写数据驱动程序 251
7.8 调试宏错误253
第8章 可视化数据 257
8.1 ODS图形概述258
8.2 绘制条形图260
8.3 绘制直方图和密度曲线262
8.4 绘制盒形图264
8.5 绘制散点图266
8.6 绘制序列图268
8.7 绘制拟合曲线270
8.8 控制坐标轴和参考线272
8.9 控制图例和插入项274
8.10 自定义图形属性276
8.11 绘制面板图形 279
8.12 指定图像属性和保存图形输出281
第9 章基本统计过程的使用方法285
9.1 使用PROC UNIVARIATE 检验数据的分布 286
9.2 使用PROC UNIVARIATE 创建统计图形 288
9.3 使用PROC MEANS 生成统计量 290
9.4 使用PROC TTEST 检验样本均值 292
9.5 使用PROC TTEST 绘制统计图形 294
9.6 使用PROC FREQ 检验分类数据297
9.7 使用PROC FREQ 创建统计图形299
9.8 使用PROC CORR 检验数据的相关性 301
9.9 使用PROC CORR 创建统计图形 303
9.10 使用PROC REG 进行简单回归分析 305
9.11 使用PROC REG 创建统计图形 308
9.12 使用PROC ANOVA 进行单因素方差分析 310
9.13 理解PROC ANOVA 的输出 313
第10 章导出数据 317
10.1 数据导出方法318
10.2 使用导出向导生成文件319
10.3 使用EXPORT 过程导出带分隔符的文件322
10.4 使用EXPORT 过程导出MicrosoftExcel 文件 324
10.5 使用DATA 步导出原始数据文件 326
10.6 使用ODS 生成带分隔符的文件和HTML文件329
第 11 章调试 SAS 程序333
11.1 编写有效的SAS 程序 334
11.2 修复无效程序336
11.3 查找缺失的分号338
11.4 提示:INPUT语句到达一行的末尾 341
11.5 提示:LOST CARD 343
11.6 提示:无效的数据 345
11.7 提示:生成缺失值 347
11.8 提示:数值已转换为字符(或反之) 349
11.9 DATA步产生错误结果而没有错误消息 352
11.10 错误:选项无效、选项无法识别、语句无效354
11.11 提示:变量未初始化/错误:变量未找到 357
11.12 SAS截断字符型变量 359
11.13 SAS在程序的中间停止 361
11.14 SAS耗尽内存或磁盘空间 363
附录 从SQL到SAS 367
我是从初学SAS 就开始看The Little SAS Book 这本书的,当时是怀着对SAS 的敬畏
之心开始学习的,觉得这应该是一种非常难以学习的语言(看到网上都是这么说的),
我原定的一个月学习时间,后实际只用了不到一个星期。可能是因为我有一定的编程
基础,但是我觉得更多的是SAS 的语言结构非常直接地刺痛了我的心,这原本就是很多
做编程的人需要的语言形式!
这本书没有一上来去举一些高大上的例子来炫耀语言的功能,也没有给我们去展示
SAS 的强大,而是耐心地告诉我们SAS 为一个编程的人,一个做数据分析的人考虑了什
么。书中一上来就告诉我们SAS 的语言结构是如此的自由、不拘一格,这恰恰是一个编
程人所追求的。严格的语言结构虽然看起来完美,但是那不是我们真正想要的。在互联
网飞速发展的今天,自由才是真正的方向,这让我们怎么能不喜欢SAS !
有人说SAS 是用来做数据分析的,但是我用过之后,印象更加深刻的是SAS 的数
《The Little SAS Book 中文版》各界联袂推荐9
据管理功能。这本书的作者也深知这一点,书中花了大量的篇幅来告诉我们如何把数据
导入SAS 当中,如何让数据以我们想要的样子展现出来,初识数据分析的人对于这些部
分可能并不感兴趣,他们可能期待的是高大上的数据分析方法如何实现,但是当他们真
正开始进入数据分析,他们就会马上知道其实数据导入这些工作耗费时间,容易出
错。The Little SAS Book 给我们的功能才是能帮助到我们的功能。这本书的内容对于数
据分析的老手同样有益,这些细致的输入输出讲解可以让我们效率提升不少。我是在高
校中开过几年SAS 数据分析课程的,一开始我认为学生用SAS,关键是要会实现一些统
计分析方法,和先修的多元统计、时间序列等课程相结合。到批学生毕业答辩的时
候我才发现,很多同学虽然学了四年的统计专业,但连基本的分类汇总、多表拼接、报
表生成都不会,他们知道图可以表现出数据的特点,但是他们根本不知道应该画什么图,
应该针对什么去画图。这或许可以归咎于课程体系的设计,但是更多的我觉得是我们缺
少对于数据的理解,从老师到学生都觉得学一些高大上的方法是有益的,殊不知这些方
法是要首先有一个完美的数据集。数据集从哪里来?课本可以给我们提供完美的实例,
但是真正到了数据分析的时候,完美的数据集本身是不存在的,需要我们花时间、花精
力去构建,老师或许不愿意花时间讲这些内容,但是学生真的应该好好去学习。本书应
该可以教你这些,它的语言浅显易懂,配图细致直观,可以很好地帮你们过这一关!
出于对SAS 语言的喜爱,我觉得我们应该仔细去读一本好书,一本让我们可以随时
拿起来品评的书。不多说了,开卷有益,你不会失望!
——马壮
数学中国网站(www.madio.net)站长