1. SAS 中的 tabulate 的使用
一般使用 tabulate 来制作报表
格式为:
proc tabulate data = 数据集 选项; /* 使用 class 是用来分类的,变量名使用空格分开 */ class 变量1 变量2 ...; /* var 跟着的是分析变量,即要分析计算的变量 */ var 变量1 变量2 ...; /* 使用逗号分割,表达式一般使用 */ table 页表达式,行表达式,列表达式; run;
例子:
1 data fly; 2 input name $ gender $ jobcode $ salary; 3 cards; 4 a male computer 10000 5 b female katydid 800 6 c male fishman 3000 7 d female katydid 900 8 e male computer 8000 9 f female katydid 1000 10 g male fishman 5000 11 h female katydid 2000 12 i male fishman 2500 13 j female katydid 9000 14 z male computer 30000 15 ; 16 run; 17 proc tabulate data=fly ; 18 class gender jobcode; 19 var salary; 20 table gender*jobcode ,salary*mean; 21 keylabel mean='平均值'; 22 label jobcode='Job Code' 23 gender='Gender' 24 salary='monthly salary'; 25 title 'Average Salary'; 26 footnote 'by zhao'; 27 run;
注意:
示例中的 * 表示交叉选项,选项可以是变量,也可以是函数,其中的 label 是标注的意思,对变量进行一个简单的标注,title 则是标题, footnote 则是脚注。
结果:
例子:
1 proc format; 2 value $city '1'='shenyang' '2'='anshan' '3'='fushun' '4'='benxi' '5'='yingkou' '6'='fuxin' '7'='liaoyang'; 3 value sex 1='male' 2='female'; 4 value nation 1='汉' 2='满' 3='朝鲜' 4='回' 5='其他'; 5 run; 6 proc tabulate data=process.table order=formatted; 7 format city $city. sex sex. nation nation. ; 8 title 'city,poor,income'; 9 class city poo2 sex nation; 10 footnote; 11 var ave_inco; 12 label city='Area'; 13 keylabel sum='Total'; 14 table nation; 15 *table city,ave_inco; 16 *table city,poo2*ave_inco*mean; 17 *table city,poo2*ave_inco*(sum mean); 18 *table city,poo2*pctn<poo2>; 19 *table city,poo2*pctn<city>; 20 *table city,poo2*pctn<city*poo2>;/*表格百分比*/ 21 *table city*poo2,ave_inco; 22 *table city*poo2*(sum mean),ave_inco; 23 *table sex,city poo2,nation*ave_inco*mean; 24 *table (city ALL)*(poo2 all),ave_inco*mean; 25 run;