SAS学习第2章:基本程序构架
SAS语言中,对大小写、缩进(每行行头的空格数)、换行不敏感,对分号敏感。【即:不用在意代码内的大小写、换行、缩进,但是要注意每一步操作结束是否有分号,不然将报错】【空格起着分隔数据与命令的作用,但一个空格与多个空格并无作用上的差异。】【分号一定要注意要使用英文分号,切忌使用中文分号】
整体结构是:
data 数据集名称;
input 变量名;
cards; 输入的数据;
proc 过程名;
run;启动运行的最终命令。
以上可以形象的理解为:
data 后输入你想给你这段代码起啥名字,(如:data cow;)
input 后输入本次实验数据中的各个因素的缩写,且必须加@@(如:a细菌所处温度;b时间,c细菌个数 即:input a b c@@; )
cards;代表数据输入的开始,数据输入结束后应当加上分号表明数据输入已经结束。
(如:cards; 12 23 45 58 89 66;)
proc后输入想调用的分析过程,如T检验(proc means mean stderr t prt;)方差分析(proc anova;)等。
class 后加变量名;
model 后加 因变量=自变量/选项(如,z是自变量,受x,y影响,即:model z=x,y)
means语句计算各处理效应的平均数,常见的有lsd,duncan,snk。默认显著水平为0.05,可以修改。
lsd指(Least—SignificantDifference),最小显著性差异法;duncan指新复极差法;snk指q法
(如用lsd,duncan,snk等三种方法计算各处理平均数,显著水平α=0.01上的多重比较 means a b /lsd duncan snk alpha=0.01)
var 后加需要分析的变量,一般为输入数据进一步处理的数。(如 input a b@@; x= a-b ;此时在run前需要声明x为待分析变量,即 var x; 不然将默认分析a与b,导致报错。)
举例:
应用克矽平治疗矽肺患者10人,治疗前后血红蛋白含量(g%)如下 。问该药是否会引起血红蛋白含量的变化?
───────────────────────
病人号 治疗前 治疗后
───────────────────────
1 11.3 14.0
2 15.0 13.8
3 15.0 14.0
4 13.5 13.5
5 12.8 13.5
6 10.0 12.0
7 11.0 14.7
8 12.0 11.4
9 13.0 13.8
10 12.3 12.0
───────────────────────
代码为:
data a1;
input a b@@;
c=a-b;
cards;
11.3 14.0
15.0 13.8
15.0 14.0
13.5 13.5
12.8 13.5
10.0 12.0
11.0 14.7
12.0 11.4
13.0 13.8
12.3 12.0
;
proc means mean stderr t prt;
var c;
run;