R2 | #30天专注橙长计划#~SAS~Day 19

R2 | #30天专注橙长计划#~SAS~Day 19_第1张图片

4.11proc freq为数据计数

对一个变量计算频数叫做one-way,两个叫做two-way,多个叫做交叉表。使用proc freq最明显的目的是现实分类数据的分布情况,基本形式为:

PROC FREQ;

TABLES vari abl e-combi nati ons;

产生一维频率表,只要列出变量名。下面的语句列出了变量yearseducation的每一个值的个数。

TABLES YearsEducati on;

建立两个变量的交叉表需要一个*号,下面的语句显示变量Sex by YearsEducation的频数情况:

TABLES Sex*YearsEducati on;

这个语句之后可以用/option的形式添加选项,主要下面几个:

LIST:用list形式打印交叉表(而不是网格)

MISSING:频率统计量中包含缺失值

NOCOL:强制在交叉表中不打印列百分比

NOROW:强制在交叉表中不打印行百分比

OUT=data-set:输出数据集

比如说,使用第二个选项:TABLES Sex*YearsEducation/MISSING;

例子有一家咖啡店的销售数据,记录了销售的咖啡种类(cappuccino,espresso,kona,or iced

coffee),以及每次购买的顾客是打包还是原地就饮:

R2 | #30天专注橙长计划#~SAS~Day 19_第2张图片

代码告诉SAS打印两个表,一个是one-way的频率表,一个是交叉表。交叉表的每个小方格

内,SAS打印了频数、百分比、行百分比和列百分比。左边和右边是累积百分比。注意计算

频数时没有考虑缺失值。

数据表的错误kon?

R2 | #30天专注橙长计划#~SAS~Day 19_第3张图片

4.12proc tabulate产生一个表格报告

比起pri nt,means,freq,Proc tabulate过程产生的报告更耐看。

Proc tabulate的基本形式为:

PROC TABULATE;

CLASS cl assification-variable-list;

TABLE page-dimension,row-dimension,column-dimension;

Cl ass语句告诉SAS哪些变量将数据分成不同部分。

Table语句可以定义一个表,可以用多个table语句定义多个表,

维度table语句可以在报告中指定三个维度:页、行、列。如果只指定一个维度,则默认是列维度;如果指定两个,则是行和列。缺失数据默认下不考虑缺失数据,在proc语句后面增加missing选项可以改变这种默认:

PROC TABULATE MISSING;

例子 有关于船的一些数据,Boats.dat,记录了每艘船的姓名、港口、移动方式(sailing或者power vesse)l,类型(schooner,catamaran,or yacht),使用它远行的价格


R2 | #30天专注橙长计划#~SAS~Day 19_第4张图片

你想得到一份报告,包含了每一个港口的、sailing或者power vessel的、每一种类型的、船的数量,下面的代码用proc tabulate创建了一个三维报告:港口作为页、移动方式作为行、类型作为列:

R2 | #30天专注橙长计划#~SAS~Day 19_第5张图片
R2 | #30天专注橙长计划#~SAS~Day 19_第6张图片

你可能感兴趣的:(R2 | #30天专注橙长计划#~SAS~Day 19)