楼主: 823954913
2069 8

[原创博文] 报表计算方法 [推广有奖]

  • 0关注
  • 19粉丝

副教授

30%

还不是VIP/贵宾

-

威望
0
论坛币
1369 个
通用积分
8.4421
学术水平
20 点
热心指数
15 点
信用等级
19 点
经验
19260 点
帖子
270
精华
1
在线时间
1187 小时
注册时间
2009-3-7
最后登录
2024-4-29

100论坛币
求高手将原始数据制作成指定格式的数据报表,要求计算正确,格式一致。报表格式如下,原始数据见附件(biaozhunfen变量为标准得分,score为得分)

报表


原始数据.xls (28.5 KB)

最佳答案

hongxx 查看完整内容

不是很完美解决,有点勉强,但数据总算是看到了的。
关键词:计算方法 score 原始数据 core SCOR 计算方法 制作
沙发
hongxx 发表于 2011-10-5 01:00:55 |只看作者 |坛友微信交流群
  1. proc import datafile='f:\原始数据' dbms=excel
  2.         out=rep_data replace;
  3.         getnames=yes;
  4. run;
  5. options linesize=256;
  6. proc report data=rep_data nowindows out=rep(drop=n _break_);
  7.         column standard_a_name standard_b_name   biaozhunfen=mean_biao dwmc,score score=average scoreratio n ;
  8.          define score / analysis format=12.2;
  9.          define average / '平均值'  mean format=12.2;
  10.          define scoreratio /  '得分率' format=percent7.1;
  11.          define dwmc /across  ;
  12.          define standard_a_name/' ' group order=data;
  13.         define standard_b_name /' ' group order=data;
  14.         define biaozhunfen/ group  ;
  15.         define mean_biao / analysis mean '标准得分 '  format=12.2 ;
  16.         compute scoreratio;
  17.         scoreratio=average/mean_biao;
  18.         endcomp;
  19.         compute after standard_a_name;
  20.                                 standard_b_name='合计';
  21.                                 mean_biao=mean_biao*n/10;  */除以10因为有10个地点,这里有些勉强,但似乎找不到可以直接求和汇总的方法,
  22.                                                                                                          因为mean_biao被定义为求均值,无法在下面的break after中语句直接求和汇总/;
  23.                                 average=average*n/10;
  24.         endcomp;
  25.         break after standard_a_name/ summarize suppress;
  26.                 rbreak after /summarize;
  27.                 compute after;
  28.                         standard_a_name='合计';
  29.                                 mean_biao=mean_biao*n/10;
  30.                           average=average*n/10;
  31.                 endcomp;
  32. quit;
复制代码

不是很完美解决,有点勉强,但数据总算是看到了的。
已有 1 人评分学术水平 收起 理由
823954913 + 1 观点有启发,照着这个办法我已经实现了需求

总评分: 学术水平 + 1   查看全部评分

使用道具

藤椅
823954913 发表于 2011-10-5 22:59:50 |只看作者 |坛友微信交流群
各位,帮帮忙吧!急需啊!

使用道具

板凳
jasonscut 在职认证  发表于 2011-10-6 04:28:49 |只看作者 |坛友微信交流群
这个应该不是很难,就是可能有些繁琐。

可以考虑用proc transpose 之后再处理。

应该没有问题。

北美统计金融博士

使用道具

报纸
yugao1986 发表于 2011-10-6 13:05:42 |只看作者 |坛友微信交流群
report不会,没有完成,不过把草稿拿出来,希望对楼主有帮助:
  1. proc transpose data=sasuser.test out=test1;/*test是lz的xls文件*/
  2.    by  standard_a_name standard_b_name biaozhunfen  dwmc notsorted;
  3.    var score ;
  4. run;
  5. proc sort data=test1;
  6. by  standard_a_name standard_b_name biaozhunfen _name_;
  7. run;
  8. proc transpose data=test1 out = test2(drop=_name_ );
  9.     by standard_a_name standard_b_name biaozhunfen _name_;
  10.         id dwmc;
  11. run;
  12. proc contents data=test2;
  13. run;
  14. data test3;
  15. set test2;
  16. avg=mean(of ____:);
  17. ratio=avg/biaozhunfen;
  18. run;
复制代码
三人行必有我师

使用道具

地板
823954913 发表于 2011-10-6 13:49:06 |只看作者 |坛友微信交流群
yugao1986 发表于 2011-10-6 13:05
report不会,没有完成,不过把草稿拿出来,希望对楼主有帮助:
其实不一定要proc report的,也可以试试proc tabulate。现在问题是汇总时候要出错,望继续指教!

使用道具

7
boomean 发表于 2011-10-7 01:06:00 |只看作者 |坛友微信交流群
我用了sas code + excel pivot table,完全sas不是很会:)
  1. proc sort data=boomean;by standard_a_name standard_b_name biaozhunfen;run;
  2. proc transpose data=boomean out=boomean2;
  3. by standard_a_name standard_b_name biaozhunfen;
  4. var score;
  5. id dwmc;
  6. run;
  7. data boomean3;
  8. set boomean2(drop=_name_);
  9. mean=mean(of ____:);
  10. run;
复制代码
完成之后把这个数据集导成excel,再转成数据透视表,a_name和b_name在“行标签”,其余在“数值”
注意到,百分比的算法用数据透视表的时候会计算有误,所以在excel中选中表格,粘贴到新的表格(选择性粘贴,数值),再计算一次百分比,也很简单,公式填充一列。
最后成型是这样,是否符合要求了?

STANDARD_A_NAME



STANDARD_B_NAME



标准分



地区A



地区B



地区C



地区D



地区E



地区F



地区G



地区H



地区I



地区J



平均分



得分率



第二部分



指标6



2



2



2



2



2



1



1



2



2



1



2



1.70



85.00%



指标7



4



0



1



0



0



0



0



0



0



0



0



0.10



2.50%



第二部分 汇总



6



2



3



2



2



1



1



2



2



1



2



1.80



30.00%



第三部分



指标10



2



2



2



1



2



2



2



2



2



1.5



1.5



1.80



90.00%



指标8



3



0



2.5



3



2.5



3



3



0



3



0



0



1.70



56.67%



指标9



5



2



1



3



2.5



4



2.5



5



3.5



1.5



4.5



2.95



59.00%



第三部分 汇总



10



4



5.5



7



7



9



7.5



7



8.5



3



6



6.45



64.50%



。。。
















第一部分



指标1



7



7



7



7



6.5



2.5



7



7



7



5.5



6



6.25



89.29%



指标2



12



10.5



12



9.5



6



11.5



12



9.5



3



7



5.5



8.65



72.08%



指标3



3



3



3



3



3



3



3



3



3



3



3



3.00



100.00%



指标4



10



8



10



8



8



0.5



9.5



5.5



10



0



0



5.95



59.50%



指标5



3



3



3



2



3



1



3



3



3



1.5



0



2.25



75.00%



第一部分 汇总



35



31.5



35



29.5



26.5



18.5



34.5



28



26



17



14.5



26.10



74.57%



总计



91



69



57



67.5



63.5



42.5



65



47



62.5



44



28.5



54.65



60.05%



使用道具

8
823954913 发表于 2011-10-7 10:55:17 |只看作者 |坛友微信交流群
boomean 发表于 2011-10-7 01:06
我用了sas code + excel pivot table,完全sas不是很会:)完成之后把这个数据集导成excel,再转成数据透视 ...
谢谢,但是我的数据量很大,用excel很费时费力的。

使用道具

9
823954913 发表于 2011-10-7 10:55:43 |只看作者 |坛友微信交流群
hongxx 发表于 2011-10-6 17:11
不是很完美解决,有点勉强,但数据总算是看到了的。
高手啊,就差一点儿了哦

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-2 19:58