适读人群 :SAS用户,统计、数据分析领域的相关工作人员
人人都能看懂的代码和结果
15年SAS经验的通俗演绎
210分钟高清配套视频讲解
《小白学SAS》内容并非包罗万象,恰恰相反,内容很少,主要涉及三大部分:数据整理、作图和制表。对于SAS软件而言,任何一《小白学SAS》都不可能包括所有内容。越是包罗万象的书,有时反而越不实用,因为它们内容太多,每部分的内容都只能是蜻蜓点水。对于这种书,我只能说,你为什么不直接去看SAS Help呢?如果仔细阅读国外优秀的SAS基础书,不难发现一个特点:绝不贪多,要么不介绍,介绍的话就会很深入,一定要让你明白为止,哪怕翻来覆去地说。这看起来似乎有点傻,但却不得不令人感慨:看非母语的英文书反而比看中文书更加清晰。所以
《小白学SAS》也是基于这一思想,凡是提到的内容,尽量用白话讲得透彻,争取将读者带领进SAS的大门,至于能不能登堂入室,还得看你自己的努力程度。
对于零基础的小白,看完之后可以骄傲地宣称,我已经入门了;对于曾经自学过SAS基础的人,看完后会后悔没有早点看到这本《小白学SAS》;对于整天跟数据打交道的人,看完后效率会成倍地提高。希望《小白学SAS》能成为任何一个想学习SAS基础的人的必备案头书。
冯国双,毕业于北京大学 ,具有十多的数据统计分析经验,主要擅长各种回归分析、非独立数据分析、药物分析建模、数据挖掘技术、新药临床试验中数据管理与统计分析等。精通SAS软件,协助医院临床或医学研究进行的设计及统计分析项目上百项。
第1章 初识SAS /1
1.1 SAS初步印象 /2
1.1.1 SAS:强大的航空母舰 /2
1.1.2 SAS的工作环境 /4
1.1.3 小白认识的第一个SAS程序 /7
1.2 建立简单的SAS数据集 /9
1.2.1 如何在SAS中输入数据 /9
1.2.2 建立一个永久的SAS数据集 /11
1.2.3 如何从别的软件导入数据 /15
1.3 本章小结 /19
第2章 SAS数据集建立的高级议题 /21
2.1 SAS变量的输入格式 /22
2.1.1 数值型变量的输入格式 /22
2.1.2 字符型变量的输入格式 /23
2.1.3 日期型变量的输入格式 /24
2.1.4 两个特殊输入符――:和& /25
2.2 SAS变量的输出格式 /29
2.2.1 数值型变量的输出格式 /30
2.2.2 字符型变量的输出格式 /31
2.2.3 日期型变量的输出格式 /32
2.3 自定义输入和输出格式 /34
2.3.1 用informat和format自定义格式 /35
2.3.2 用picture照个输出模板 /38
2.4 如何产生新变量 /40
2.4.1 利用表达式或函数直接产生新变量 /40
2.4.2 利用if-then语句产生新变量 /42
2.4.3 利用retain语句和累加语句产生新变量 /43
2.4.4 利用do循环语句产生新变量 /46
2.4.5 指定新变量的类型与长度 /47
2.5 @符号在输入方式中的应用 /50
2.6 SAS函数应用技巧 /52
2.6.1 与数值计算有关的函数 /54
2.6.2 与字符有关的函数 /56
2.6.3 与日期和时间有关的函数 /69
2.6.4 与变量类型转换有关的函数 /74
2.6.5 与概率和分布有关的函数 /78
2.6.6 dif和lag函数 /82
2.7 本章小结 /84
第3章 SAS数据清洗和加工 /85
3.1 数据合并 /88
3.1.1 利用set语句进行纵向合并 /88
3.1.2 利用merge语句进行横向合并 /94
3.2 数据对比 /97
3.3 数据清洗――查找和删除重复值 /100
3.3.1 查找和删除重复值 /100
3.3.2 扩展内容:first.变量和last.变量 /103
3.4 数据清洗――查找缺失值 /105
3.4.1 补充内容:数组 /106
3.4.2 补充内容:自动变量 /110
3.4.3 超值礼包:查找缺失值的万能程序 /112
3.5 数据清洗――查找异常值 /113
3.5.1 补充内容:if和where的区别 /113
3.5.2 超值礼包:查找异常值的万能程序 /115
3.6 缺失值的填补 /119
3.6.1 缺失数据的填补 /119
3.6.2 缺失数据的更新 /122
3.6.3 扩展内容:常见SAS语句及数据集选项 /124
3.7 产生数据子集 /128
3.7.1 产生特定记录的子集 /128
3.7.2 生成变量子集 /130
3.8 本章小结 /132
第4章 SAS与数据可视化 /133
4.1 用菜单绘制统计图 /134
4.1.1 绘制数据的分布图 /138
4.1.2 绘制箱式图 /143
4.1.3 绘制散点图和回归线图 /146
4.1.4 绘制序列图、带状图和阶梯图 /151
4.1.5 绘制金字塔图/旋风图/蝴蝶图 /158
4.2 用proc sgplot绘制不一样的图 /162
4.2.1 绘制几个常规图 /168
4.2.2 绘制双坐标轴图 /171
4.2.3 绘制多样的柱状图 /174
4.2.4 绘制瀑布图 /179
4.2.5 绘制气泡图 /181
4.2.6 绘制风险图 /184
4.2.7 绘制自己的卡通图 /187
4.2.8 绘制森林图 /190
4.3 用proc template制作绘图模板 /194
4.3.1 画一个绚丽的饼图 /197
4.3.2 马赛克图 /200
4.3.3 截断坐标轴图 /203
4.3.4 三维直方图 /206
4.3.5 热图 /208
4.4 用proc gradar绘制雷达图 /209
4.4.1 绘制雷达图 /210
4.4.2 绘制日历图 /213
4.5 用proc gmap绘制地图 /215
4.5.1 利用SAS自带地图文件绘制中国地图 /218
4.5.2 利用SAS自带地图文件绘制省地图 /221
4.5.3 利用shape文件绘制中国地图 /225
4.5.4 利用shape文件绘制地区地图 /227
4.6 本章小结 /230
第5章 SAS与表格展示 /231
5.1 用tabulate过程制表 /231
5.1.1 制作三维列联表 /233
5.1.2 表格修饰 /235
5.1.3 生成定量资料的描述表 /240
5.1.4 制作描述多变量的统计表 /242
5.1.5 制作标准的三线表 /246
5.2 用report过程制作统计报表 /249
5.2.1 列表显示符合条件的观测 /251
5.2.2 分组显示统计量 /258
5.2.3 生成列联表 /262
5.3 用ODS系统传送结果 /264
5.3.1 把结果输出到Word、Excel或PDF /265
5.3.2 用template制作表格模板 /266
5.4 本章小结 /272
为什么写这本书
在我教授研究生SAS基础课的时候,每届研究生总会问一个问题:能不能给推荐一本通俗易懂的SAS基础参考书。而每次听到这个问题,都让我难以回答。客观地说,国内关于SAS的书很多,但专门写SAS基础的书屈指可数,而真正适合那些毫无基础的SAS新手的书更是寥寥无几。当然这并不是说国内缺乏优秀的SAS基础书,只是写作风格不一定适合新手,这些书都是把SAS当作一个软件来讲,从开始介绍如何安装,然后逐一介绍各种命令、函数的语法结构。这种教材式的书对有一定基础的人来说,可能并没什么太大问题。但对于毫无基础的人来讲,却无异于经历一场噩梦,这种看不懂的痛苦只有亲身经历的人才深有体会。回想10多年前,我也是看着这种教程历经磨难一
路走来,正是因为有这种亲身经历,我才不想让后来人继续体验这种痛苦,所以才有了这书的问世。
本书的特点
本书与国内仅有的几本SAS基础书相比,最大的不同在于,不是以软件为导向来逐一介绍各种命令语法,而是以解决实际问题为导向,介绍如何用SAS来协助实际工作。比如,你可以从以往的书中学到count函数的用法,但却不知道原来用count函数还可以分析淘宝商品的评价;你可以从以往的书中学到数组,但却不知道原来结合数组可以写出一个查找缺失值的万能程序;你可以从以往
的书中学到proc sgplot绘图命令,但却学不到如何利用它来综合绘制任意想要的图形;等等。本书的目的不在于教你了解这些SAS命令或函数的基本用法,这些很简单,你只要看SASHelp,比什么教程写得都详细。本书的目的在于通过介绍这些命令和函数,让你了解隐藏在它们背后的实际用途。比如看到round函数,如果你只知道它可以用来对数值四舍五入,这是最基础的,不值一提。但你如果还能利用这种四舍五入的功能对变量进行自动分组,那才是思路的开阔。
本书另外一大特色是,以对话形式引导读者去思考和学习。书中不少对话其实都是来源于现实中研究生和我的对话,他们也是从零开始学SAS,正如本书的主人公小白一样,都是对SAS一无所
知。所以本书中小白的很多问题,相信也是现实中很多SAS小白想问的问题。只有走过的人才会明白,从零开始学习一门软件语言是多么的痛苦和无助,如果再没有一本能让你看得下去的辅导书,那更是一种折磨。所以本书采用对话形式,很大程度上是想拉进与读者的距离,让读者消除初学SAS的紧张和枯燥。
本书的主要内容
本书内容并非包罗万象,恰恰相反,内容很少,主要涉及三大部分:数据整理、作图和制表。对于SAS软件而言,任何一本书都不可能包括所有内容。越是包罗万象的书,有时反而越不实用,因为它们内容太多,每部分的内容都只能是蜻蜓点水。对于这种书,我只能说,你为什么不直接去看SAS Help呢?如果仔细阅读国外优秀的SAS基础书,不难发现一个特点:绝不贪多,要么不介绍,介绍的话就会很深入,一定要让你明白为止,哪怕翻来覆去地说。这看起来似乎有点傻,但却不得不令人感慨:看非母语的英文书反而比看中文书更加清晰。所以本书也是基于这一思想,凡是提到的内容,尽量用白话讲得透彻,争取将读者引领进SAS的大门,至于能不能登堂入室,还得看你自己的努力程度。
本书的主要内容包括以下几个方面:
● 建立数据集的基础和高级议题。从最简单的建立SAS数据集开始,逐步深入,介绍如何产
生新变量,如何对数据集中的变量进行修饰,如何合理地运用输入和输出格式来完成一些实际工作,等等。
● 介绍了比较实用的几个函数。不仅是介绍函数本身,更重要的是介绍函数的使用思路,介绍如何应用函数来处理实际问题,而这正是目前国内大部分书中所缺乏的。
● 介绍了数据清洗过程。如何查找重复值、异常值、缺失值等,这是所有数据的必需过程。本书不仅提供了这些处理过程的思路和命令,更是直接给出了一些现成的打包程序,你可以直接拿来主义,用它们执行数据清洗。
● SAS做图。这是本书的一大特色。目前国内尚无如此详细介绍SAS绘图的书籍,本书花了大量篇幅介绍如何利用SAS的菜单和命令绘制各种常规和非常规的图形,相信看了本书的介绍以后,你再也不用为绘图而犯愁了。
● SAS制表。不仅介绍了常规的制表程序,而且介绍了很多高级的深入用法,如对表格的详细修饰,将表格直接输出为标准的三线表等。这些都是实际中非常实用的例子,不管你是在公司还是事业单位,相信都会用到这种实用的报表。
● 附录。限于篇幅,有些内容没有在书中体现,但以电子版的形式作为附录提供给读者。附
录主要包括两部分。一是给SAS新手看的,如常见的SAS错误提示,SAS一些高效和低效写法的比较等。二是写给SAS高手看的,相信不少SAS高手都用过R软件,本书介绍了如何在SAS中调用R,将二者功能结合起来,更能体现出SAS的优势。
本书的对象和希望达到的目的
如果你跟本书的主人公一样,是一个零基础的SAS小白;如果你曾经对SAS望而却步,但却又始终抱着一个学习SAS的梦想;如果你曾经学过SAS,但始终感觉仍在门口徘徊,无法登堂入室;如果你的工作需要处理一大堆的数据,正在发愁如何提高数据管理的效率;如果你还在抱怨SAS做不出精美的图形;如果你觉得看SAS Help太吃力,想看一本解释得更加通俗的SAS基础参考书……凡此种种,你都可以拿起本书,相信它可以解决你的这些问题。我希望本书能达到这样的目的:以往对SAS敬而远之的人,看了后会喜欢上SAS;零基础的小白,看完之后可以骄傲地宣称,我已经入门了;曾经自学过SAS基础的人,看完后会后悔没有早点看到这本书;整天跟数据打交道的人,看完后效率会成倍地提高。我希望本书能成为任何一个想学习SAS基础的人的必备案头书。
配套资源下载
本书的配套资源主要包括三部分:一是书中所有的程序(带有书中对应的页码),方便读者自行练习;二是9个视频,与书中内容对应,尤其是有些在书中难以详细介绍的内容,在视频中可以更生动地说明;三是给SAS新手和SAS老手的一些实用的提示(也就是前面提到的附录)。这些内容可以通过访问“知了帮”网站下载: http://read.zhiliaobang.com/pages/article/35。
读者交流平台
我们给读者提供了更立体化的资源建设,不定期地给大家分享数据分析、数据挖掘、PPT等方面的精彩内容。在阅读过程中如果遇到疑难问题可以直接提问,我们会在力所能及的范围解答图书相关问题。读者也可以扫描下面的二维码予以关注。VII
致谢
本书的出版要感谢成都道然科技有限责任公司的姚先生,正是他们的大力支持和推动,才使得本书能尽快面世。感谢北京大学在读博士石瑀,她帮我把书中每一个程序都运行了一遍,以保证书写无误。而且还帮我指出了一些小错误,使得本书在正式出版前能够将一些错误消灭在萌芽之中。另外,感谢我周围的朋友、同事和学生的支持,他们经常问我:这本书什么时候出版,我什么时候才能买到?每次我都回答:我正在抓紧写。他们总会很满意地接受这个答复。虽然我们竭尽全力排除每个错误,但疏漏之处难免,欢迎读者批评指正。