作者MmmRrrrX (银色的灵魂)
站内Statistics
标题Re: [问题] 怎样做这样的Cross Table --取一定值为 …
时间Tue Aug 10 23:26:55 2010
※ 引述《liton (欧吉桑留学生)》之铭言:
: 想请教一下以下资料的Cross Table怎麽做
: 原始资料共有三个栏位
: 类别($) 原始值(8.) 调整後值(8.)
: 其中原始值介於0~1 调整值为原始值调整後的值
: 类别假设只有A B两项
: 想产出下面的报表
: 分类 值 原始值合计 调整後值合计
: A 0~0.5
: 0.5~1
: B 0~0.5
: 0.5~1
如果先自己做初步的处理呢?
假设你的资料表为aa value是原始值 class是分类
你希望的报表前三行
data a1;
set aa;
if 0<value<0.5;
a=1;
data a2;
set aa;
if 0.5<=value;
a=1;
run;
PROC UNIVARIATE data=a1;
by class;
var a;
output out=z1 sum=before;
run;
data z1;
set z1;
value="0 ~ 0.5";
run;
PROC UNIVARIATE data=a2;
by class;
var a;
output out=z2 sum=before;
run;
data z2;
set z2;
value="0.5 ~ 1";
run;
data new;
set z1 z2;
run;
proc sort data=new;
by class;
run;
而调整後值也可以照这样处理之後在合并
再用 proc print 输出报表
有点落落长,不知道有没有更直接的做法
不过应该可以达到你的要求
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.145.80
※ 编辑: MmmRrrrX 来自: 140.119.145.80 (08/10 23:50)
1F:→ liton:硬干是最後的Solution啦 还在找其他方法中 08/11 01:16