(完整版)SAS程序汇总
- 格式:doc
- 大小:510.01 KB
- 文档页数:35
目录SAS基础 (2)创建数据集 (2)其他软件产生的标准格式文件与SAS数据集之间的互相转换。
(2)从外部文件(文本文件)读取数据 (2)排序 (4)计算产生新变量 (4)数据集的拆分 (4)数据集的合并 (5)纵向连接 (5)横向合并 (5)计量资料的描述 (6)计算几何均数 (6)制作频数表 (6)单变量描述 (7)多变量描述 (8)两样本均数的比较 (9)单一总体均数的可信区间 (9)两总体均数相差的可信区间 (9)单样本均数的t检验 (10)原始数据已知-ttest (10)原始数据未知 (10)配对资料两样本均数比较的t检验 (11)MEANS (12)UNIVARIATE (12)TTest (12)成组资料两样本均数比较的t检验 (13)两样本均数的等效性检验 (13)完全随机设计资料的方差分析 (14)相关 (15)绘制散点图 (15)绘制分层散点图 (17)Pearson相关系数及其置信区间的计算 (17)Spearman相关系数的计算 (18)简单线性回归 (18)简单线性回归方程的估计及假设检验 (18)绘制回归直线置信带、预测带 (19)根据输出的残差数据绘制残差图 (19)多变量回归分析 (20)卡方检验 (21)独立四格表资料的卡方检验 (21)配对四格表资料率的比较的卡方检验 (22)R*C表资料的卡方检验 (23)关联性分析 (24)基于秩次的非参数检验 (25)配对样本的符号秩和检验 (25)单样本的符号秩和检验 (25)两独立样本的秩和检验 (26)多组独立样本的秩和检验 (28)随机区组样本的秩和检验 (28)Logistic回归与生存分析 (29)Logistic回归 (29)二分类Logistic回归 (29)有序LOGISTIC回归 (31)多分类LOGISTIC回归 (31)生存分析 (32)寿命表方法进行生存率的估计 (32)K-M法进行生存率的估计 (33)Cox回归 (34)SAS基础创建数据集其他软件产生的标准格式文件与SAS数据集之间的互相转换。
libname c "F:\郑亚_32620151151279";Proc import datafile='E:\data1_1.xls' dbms=excel replace out=c.data1_1_32620151151279;/*sheet=”sheet1$” */Run;从外部文件(文本文件)读取数据DATA b;INFILE 'E:\SYS.TXT';INPUT ID GENDER $ AGE BLOOD $ SURT;RUN;DATA A;INPUT ID GENDER $ AGE BLOOD $ SURT;/*ID 等为变量名,$表示其前面的那个变量为字符型变量*/DATALINES; /*引出数据行*/1 M 41 A 3682 M 26 B 7453 F 35 B 4014 M 47 AB 5525 F 37 A 4786 F 39 O 6287 M 28 O 5498 M 31 B 1289 M 43 AB 46310 M 29 A 512;ODS HTML FILE='E:\RESULT.xls';/* 将以下SAS输出结果存放到EXCEL文件中*/ PROC PRINT DATA=A;RUN;ODS HTML CLOSE;/*关闭对外输出系统*/PROC FORMAT;VALUE GE 1='M'2='F'; /*定义值标签*/ VALUE BL 1='A'2='B'3='AB'4='O'; DATA A;INPUT ID GENDER AGE BLOOD SURT; DATALINES;1 1 41 1 3682 1 26 2 7453 2 35 2 4014 1 47 3 5525 2 37 1 4786 2 39 4 6287 1 28 4 5498 1 31 2 1289 1 43 3 46310 1 29 1 512;RUN;ODS HTML FILE='E:\RESULT.xls' ; PROC PRINT DATA=A;FORMAT GENDER GE.; /*借用值标签*/ FORMAT BLOOD BL.;RUN;ODS HTML CLOSE;排序Proc sort data=a out=b; by age;Run;Proc sort data=a out=c; by descending age; Run;计算产生新变量DATA B; SET A;打开数据集B,并从数据集A读入数据。
DATA D;FORMAT SURT_Y 5.3;SET A;SURT_Y=SURT/365;IF AGE>40THEN AGROUP=1;ELSE AGROUP=2;RUN;数据集的拆分DATA A;INPUT ID GENDER $ AGE BLOOD $ SURT; DATALINES; /*引出数据行*/1 M 41 A 3682 M 26 B 7453 F 35 B 4014 M 47 AB 5525 F 37 A 4786 F 39 O 6287 M 28 O 5498 M 31 B 1289 M 43 AB 46310 M 29 A 512;DATA B C;SET A;IF GENDER='F'THEN OUTPUT B;ELSE OUTPUT C;RUN;DATA B(DROP=GENDER) C(DROP=BLOOD);SET A;RUN;数据集的合并纵向连接data st1;input x y @@; /* @@表示连续读入数据 */ cards;1 202 40;proc print;data st2;input x y @@;cards;3 804 160;proc print;data st;set st1 st2;proc print;run;横向合并data a;input num x @@;cards;101 12 102 14 103 15;proc sort out=aa;by num;data b;input num y @@;cards;101 100 102 134 103 145;proc sort out=bb;by num;data c;merge aa bb;by num;proc print;run;计量资料的描述计算几何均数data ex2_5;input x f @@;y=log10(x);cards;10 420 340 1080 10160 11320 15640 141280 2;proc means noprint;var y;freq f;output out=b mean=logmean;run;data c;set b;g=10**logmean;proc print data=c;var g;run;制作频数表data ex2_1;input x @@;low=3.07;dis=0.2;z=x-mod(x-low,dis);cards;3.964.23 4.42 3.595.12 4.02 4.32 3.72 4.76 4.164.61 4.263.774.20 4.36 3.07 4.89 3.97 4.28 3.64 4.66 4.044.55 4.254.63 3.91 4.41 3.525.03 4.01 4.30 4.19 4.75 4.144.57 4.264.56 3.79 3.89 4.21 4.95 3.98 4.29 3.67 4.69 4.124.56 4.264.66 4.28 3.83 4.205.24 4.02 4.33 3.76 4.81 4.173.96 3.274.61 4.26 3.96 4.23 3.76 4.01 4.29 3.67 3.39 4.124.27 3.614.98 4.24 3.83 4.20 3.71 4.03 4.34 4.69 3.62 4.184.26 4.365.28 4.21 4.42 4.36 3.66 4.02 4.31 4.83 3.59 3.973.964.495.11 4.20 4.36 4.54 3.72 3.97 4.28 4.76 3.21 4.044.56 4.254.92 4.23 4.47 3.605.23 4.02 4.32 4.68 4.76 3.694.61 4.263.894.21 4.36 3.425.01 4.01 4.29 3.68 4.71 4.134.57 4.264.035.46 4.16 3.64 4.16 3.76;proc freq;tables z;run;单变量描述/*用MEANS过程计算例数、均数、标准差、标准误*/proc means data=ex2_1;var x;run;/*用MEANS过程计算例数、均数、标准差、标准误和95%可信区间*/proc means data=ex2_1 n mean std stderr cv clm;var x;run;/*用MEANS过程对频数表计算例数、均数、标准差、最小值和最大值*/data prg4_4;input x f @@;cards;3.17 23.37 33.57 93.77 143.97 224.17 304.37 214.57 154.77 104.97 65.17 45.37 2;proc means;freq f;var x;run;proc means maxdec=2data=prg4_4;freq f;var x;run;多变量描述/*用UNIVARIATE过程进行描述性统计*/proc univariate data=ex2_1;freq f;var x;run;/*计算2.5%和97.5%分位数*/proc univariate data=ex2_1;freq f;var x;output out=pct pctlpre=p pctlpts=2.597.5; run;proc print data=pct;run;/*作正态性检验、茎叶图、箱式图和正态概率图*/proc univariate data=ex2_1Normalplot;var x;run;两样本均数的比较单一总体均数的可信区间data prg5_1;n=10;mean=166.95;std=3.64;t=tinv(0.975,n-1);in=t*std/sqrt(n);lclm=mean-in;uclm=mean+in;proc print;var lclm uclm;run;两总体均数相差的可信区间data prg5_2;n1=29;n2=32;m1=20.10;m2=16.89;s1=7.02;s2=8.46;ss1=s1**2*(n1-1);ss2=s2**2*(n2-1);sc2=(ss1+ss2)/(n1+n2-2);se=sqrt(sc2*(1/n1+1/n2));t=tinv(0.975,n1+n2-2);lclm=(m1-m2)-t*se;uclm=(m1-m2)+t*se;proc print;var t se lclm uclm;run;单样本均数的t检验原始数据已知-ttestdata prg5_1;input x @@;datalines;;Run;Proc ttest h0=140;Var xRun;原始数据未知某医生测量了36名从事铅作业男性工人的血红蛋白含量,算得其均数为130.83g/L,标准差为25.74g/L。