楼主: myc_sas
4410 7

[问答] 请教sas做报表高手 [推广有奖]

  • 0关注
  • 0粉丝

本科生

31%

还不是VIP/贵宾

-

威望
0
论坛币
1074 个
通用积分
0.0002
学术水平
7 点
热心指数
9 点
信用等级
0 点
经验
833 点
帖子
78
精华
0
在线时间
88 小时
注册时间
2011-3-8
最后登录
2011-4-21

楼主
myc_sas 发表于 2011-3-29 16:43:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
例如我有如下sas数据表:

a b c d
1 1 x 100
1 1 y 150
1 2 x 200
1 2 y 250
2 1 x 300
2 1 y 350
2 2 x 400
2 2 y 450

我需要的报表大致是这样的:



我想请问这种情况用什么比较好?我本打算用 proc tabulate做,但不知道怎么实现
最右边那一列。请问高手们应该如何解决这个问题?谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Tabulate Late 不知道 tab 数据表 请教 高手 SAS

untitled.JPG (15.86 KB)

untitled.JPG

回帖推荐

andrawliu 发表于7楼  查看完整内容

本帖被以下文库推荐

沙发
gzgysr 发表于 2011-3-29 16:46:55
呵呵,下个资料不就知道了?

藤椅
myc_sas 发表于 2011-3-29 16:58:48
gzgysr 发表于 2011-3-29 16:46
呵呵,下个资料不就知道了?
我知道这个问题应该很简单,只不过不知道去哪找类似的资料……比如我都还不知道到底
用proc tabulate还是 proc report

板凳
yuanqiu8866 发表于 2011-3-29 17:13:37
你可以查查sashelp
或者有本书,我发给你,你把邮箱给我,那本书写得很详细

报纸
baoaibaobao 发表于 2011-3-29 20:40:55
  1. option nodate nonumber;
  2. proc tabulate data=a out=b;
  3. class a b c;
  4. var d;
  5. table a*b*d=''*sum=''  all=''*d=''*sum='',c all='sum' a/row=float;
  6. run;
复制代码
有些不太一样,最后那个sum by a变量觉得应该再生成个变量!

地板
myc_sas 发表于 2011-3-29 21:24:39
谢谢楼上两位,我查了sas help以及那本 SAS Guide to Report Writing,但都没有找到类似这样格式的报表例子。那个sum by a基本都是单加一行在a=1以及a=2下面,作为变量b的all来做的……

难道sas不能支持这样的格式么?

7
andrawliu 发表于 2011-3-30 00:10:11
  1. data a;
  2. input a $ b $  c $ d;
  3. datalines;
  4. 1 1 x 100
  5. 1 1 y 150
  6. 1 2 x 200
  7. 1 2 y 250
  8. 2 1 x 300
  9. 2 1 y 350
  10. 2 2 x 400
  11. 2 2 y 450
  12. ;
  13. run;
  14. proc tabulate data=a;
  15. class a b c;
  16. var d;
  17. table a*(b all='sum by a') all='',c*d=''*sum='' all*d=''*sum='';
  18. run;
复制代码
已有 1 人评分学术水平 热心指数 收起 理由
peijiamei + 1 + 1 好的意见建议

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

8
myc_sas 发表于 2011-3-30 18:30:51
andrawliu 发表于 2011-3-30 00:10
  1. data a;
  2. input a $ b $  c $ d;
  3. datalines;
  4. 1 1 x 100
  5. 1 1 y 150
  6. 1 2 x 200
  7. 1 2 y 250
  8. 2 1 x 300
  9. 2 1 y 350
  10. 2 2 x 400
  11. 2 2 y 450
  12. ;
  13. run;
  14. proc tabulate data=a;
  15. class a b c;
  16. var d;
  17. table a*(b all='sum by a') all='',c*d=''*sum='' all*d=''*sum='';
  18. run;
复制代码
谢谢热心回帖,不过这个结果就是我6楼说的解决办法了。并不是我想要的显示格式。
(sum a作为一列,而且最好是合并了单元格)

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 08:21