
从过来人的经验来看,最好最快的途径就是读牛人的代码,并且逐步运行看结果。比如你随便创建一个数据集,set sashelp.class,就可以运行很多数据步的代码。抛开SAS统计方法层面的各种proc,data步是SAS的精髓。看一个人SAS水平如何通常有两点,一就体现在数据步的使用上,比如看数据步会不会用first,last,set by算累计频数,因为PDV的读取是SAS的核心,如果你还会巧妙使用end= in=等技巧就刚好;二是看会不会写macro,要了解宏变量读取的方式,以及多个&如何转义,个人感觉写宏其实不难,只要你打开options中的macrogen,mprint以及symbolgen等选项,并且知道在macro中可以开放的写%if 以及%do while等,而不必像一般程序一样必须要写在封闭的数据步中就好,这样debug就变得很容易。
SAS入门2回顾:
1、proc format语句:
invalue<$>格式名 变量或范围=输入格式
value<$>格式名 变量或范围=输出格式
2、设置变量长度:length语句(由第一个变量的值决定)
例:
data eva
length bonus $5.
input id g bonus$
if g<70 then eva="合格"elseeva="不合格"
eva=bonus
cards
注:“字符变量一旦产生,它的长度就无法改变”。
mod(x,y) 返回x除以y的余数
abs(x) 返回x的绝对值
exp(x) 返回x的指数值
log(x) 返回x的自然对数值
log10(x) 返回x的以10为底的对数值
sqrt(x) 返回x的平方根
ceil(x) 返回≥x的最小整数
floor(x) 返回≤x的最大整数
int(x) 返回x的整数部分
data aa
input x
sx=sqrt(x) lx=log(x)
cards
函数(x1,x2,x3,…xn)或函数(of x1-xn)
例:
upcase(变量或字符串) 作用是将所有字母改为大写。
lowcase(变量或字符串) 作用是将所有字母改为小写。
例:gender=lowcase(gender)
例:
lengthn(变量或字符串)、空值返回为0
例:
data code
input name&:$50. gender:$
len1=lengthn(name)
len2=lengthn(gender)
substrn(变量,起始位置,提取长度)
例:
find(变量或字符串,查找内容,起始位置) /*忽略大小写,所有字符完全匹配*/
findc(变量或字符串,查找内容,起始位置)/*忽略大小写,部分字符匹配*/
例:
type1=find(tp,"int","i") /*在变量tp中查找完整的int,忽略大小写*/
type2=findc(tp,"int","i") /*在变量tp中查找int中任一字母,忽略大小写*/
ccompress(变量或字符串,欲去除的字符,修饰符)
a,去掉变量或字符串中的所有字母
d,去掉变量或字符串中的所有数字
s,去掉变量或字符串中的所有空格
i,忽略大小写
tranwrd(变量或字符串,查找值,替换值)
例:
input id dose&:$30. /*dose变量包含空格,因此加上&符号*/
dose1=tranwrd(dose,"口服","PO") /*将“口服”替换为“PO”*/
cards
missing(变量)/*”是“--->1 "不是"-->0
例:
mgender=missing(gender)/*判断gender是否有缺失*/
mage=missing(age) /*判断age是否有缺失 */
例:
yrdif(开始日期,结束日期,“actual")
例:life=yrdif(start,end) /*计算两个日期之间的实际年数 */
input(变量,输入格式) /*字符型变量-->数值型*/
put(变量,输出格式)/*数值型变量-->字符型*/
例:
input sn:$10. d1:$10. d2:$10.
sn2=input(sn,10.) /*将sn按长度为10的格式转为数值型 */
date1=input(d1,yymmdd8.) /*将d1按yymmdd8.的格式转为数值型 */
date2=input(d2,date9.) /*将d2按date9.的格式转为数值型*
以下两个函数在处理动态数据、追踪数据方面几乎是必备的,如计算环比。
返回指定变量的前一个(或前几个)记录;
返回当前记录与前一个(或前几个)记录的差值。
1.薛富波主编的《SAS8.2统计应用教程》这是我看的第一本与sas相关的书籍,个人觉得还是不错的,全书的基本框架是先对语句(过程步或者数据步)进行详细的解释,后面紧接着是针对该语句的例子,所以很容易上手,对于初学者很实用。Tips:但是看这本书有个缺点就是,几乎列出了所有过程步或者数据步的 选项,如果要全看下来,估计对于初学者的信心是一个很大的挑战。我刚开始看的时候被搞得一头雾水,后来才发现大多数选择项几乎很少用到,所以建议初学者在第一遍看这本书的时候尽量挑些常用的选项理解一下意思就可以了,看不懂的快速的跳过,主要是通过例子来揣摩和理解语句的意思可能会好一点。这本书看下来,基本对sas的语句语法什么的会有一个大体的了解。
2.朱世武主编的《sas编程技术教程》-清华大学出版社出版,显然这本书吸取了第一本的教训,虽然相比第一本书,基本思路大致是一样的,那就是先是介绍语句的基本结构,然后通过大量的实例来分析和演练。但是作者在介绍了部分常用的选择项,所以整本书看起来也通俗易懂,非常适合初学者。
3.《The Little SAS Book》虽然是英文,但是其实还是灰常容易读懂的,基本上都是短句,也没有什么生僻的词汇,并且思路很清晰,推荐英语好的同学看这个,PS:其实英语不好的童鞋更应该看这本,正好借此机会学习下英语,一举两得。
这三本书基本上涉及的模块主要是sas/base,入门足够了。在每本书的后面阶段的还涉及了一些简单的sqL编程,以及宏,但是不是很详细,要是想学习高级一点的SAS编程,还得找其他的方面的书看。但是就入门来说这三本肯定是足够了。
下面是列举这几年国内出版的sas医学相关书籍:
1. 2010 SAS统计分析教程 胡良平
2. 2010 SAS实验设计与统计分析 胡良平
3 .2009 SAS统计分析从入门到精通 阮敬
4. 2009 时间序列分析与SAS应用 肖枝洪
5. 2009 SAS软件实用教程 张瑛
6. 2008 SAS数据分析系统教程 陈颖
7. 2008 SAS统计分析应用 董大钧
8. 2008 多元统计及SAS应用 余家林
9. 2008 SAS数据分析范例 范金城
10. 2007 SAS与统计分析 胡希远
11. 2007 SAS软件与统计应用教程 汪远征
12. 2007 医学统计学及SAS应用 王炳顺
13. 2007 SAS统计软件 周仁郁
14. 2006 SAS8.2统计软件应用教程 贺佳,陆健
16. 2006 SAS统计分析教程 唐燕琼
16. 2006 医用SAS统计分析 金丕焕,苏炳华,贺佳
17. 2006 SAS社会统计实用教程 蔡建平
18. 2006 数据分析方法和SAS系统 邓祖新
19. 2006 SAS统计分析及应用 黄燕
20. 2005 统计分析系统SAS 何宁
21. 2005 统计分析与SAS软件 黄平,梁满发
22. 2005 SAS统计分析 沈其君
23. 2004 SAS for Windows (v8) 统计分析系统教程新编 洪楠
24. 2004 统计分析方法: SAS实例精选 曲庆云
25. 2004 重复测量资料分析方法与SAS程序 余松林
26. 2004 中医临床研究设计与SAS编程统计分析 胡立胜,周强
27. 2003 医学统计学习题与SAS实验 郭秀花
28. 2003 SAS统计分析实用大全 阮桂海
29. 2003 SAS系统与经济统计分析 岳朝龙
30. 2002 分类数据的统计分析及SAS编程 刘勤,金丕焕
31. 2002 SAS系统和数据分析 邓祖新
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)