SAS中文论坛
标题:
proc report and proc tabulate 可以实现这样的表吗?请教高手解答
[打印本页]
作者:
shiyiming
时间:
2011-8-27 20:15
标题:
proc report and proc tabulate 可以实现这样的表吗?请教高手解答
数据:
data b;
input sub_no pot x y;
cards;
1 1 0 0
1 2 0 73
1 3 0 73
1 4 20 28
1 5 20 28
2 1 0 0
2 2 0 66
2 3 46 67
2 4 123 169
2 5 237 321
;
run;
output:
pot sub_no= 1 sub_no= 2
_______ x______y____________x_________y
1_______0______0___________0__________0
2__________________________0__________66
________0_____ 73________________________
3__________________________46_________67
4 _________________________123_________169
________20_____28________________________
5 _________________________237__________321
难点:row 2和3对于sub_no1是合并了的,是因为sub_no1的pot2,3对应的x,y值都是相同的而如果pot 2,3对应的x,y值不同,则不会被合并
太不方便了,连图片都没法贴,只能用线代替下
作者:
shiyiming
时间:
2011-9-3 02:07
标题:
Re: proc report and proc tabulate 可以实现这样的表吗?请教高手解答
假如Sub_No有太多不同取值,输出的表会很宽。同时 subfmt 也应相应调整。 可能不需要定义格式,一时弄不清楚。
data b;
input sub_no pot x y;
cards;
1 1 0 0
1 2 0 73
1 3 0 73
1 4 20 28
1 5 20 28
2 1 0 0
2 2 0 66
2 3 46 67
2 4 123 169
2 5 237 321
;
run;
proc format lib=work;
value subfmt
1='Sub_No=1'
2='Sub_No=2';
run;
proc sort data=b ;
by sub_NO x y pot;
run;
data c;
format sub_no subfmt.;
set b;
by sub_NO x y pot;
if last.y;
run;
proc tabulate data=c ;
class pot sub_no ;
var x y;
table pot='',sub_No=''*f=subfmt.*(x='X'*sum='' y='Y'*sum='')
/box=[label="Pot"];
run;
作者:
shiyiming
时间:
2011-9-9 13:57
标题:
Re: proc report and proc tabulate 可以实现这样的表吗?请教高手解答
多谢回复
接近最后的图表了。
但是最关键的地方还是没有做到,
那就是对于sub_no=1, row 2,3 对应的x,y的值是相同的,他们会合并到一个格子,而不是分开两个row来显示的。
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2