SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 803|回复: 2
打印 上一主题 下一主题

proc report and proc tabulate 可以实现这样的表吗?请教高手解答

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-8-27 20:15:53 | 只看该作者

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值不同,则不会被合并


太不方便了,连图片都没法贴,只能用线代替下
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-9-3 02:07:38 | 只看该作者

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-9-9 13:57:02 | 只看该作者

Re: proc report and proc tabulate 可以实现这样的表吗?请教高手解答

多谢回复

接近最后的图表了。
但是最关键的地方还是没有做到,
那就是对于sub_no=1, row 2,3 对应的x,y的值是相同的,他们会合并到一个格子,而不是分开两个row来显示的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-9 21:36 , Processed in 0.067197 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表