楼主: 98547443
5832 1

[SAS EM] sas proc report [推广有奖]

  • 0关注
  • 0粉丝

已卖:31份资源

大专生

68%

还不是VIP/贵宾

-

威望
0
论坛币
218 个
通用积分
1.3500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
398 点
帖子
16
精华
0
在线时间
80 小时
注册时间
2022-3-5
最后登录
2024-9-3

楼主
98547443 在职认证  发表于 2022-10-2 19:55:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
正如《the little sas book》所说,在sas中Report 包含 print、means 和 tabulate、sort 的所有功能,基本形式为:
  1. PROC report options;/*options常用的有nowindows headline headskip missing*/

  2. column variable-list;

  3. define variable-list/options '';/*options常用的有group across order display*/

  4. break location varivale/options;/*location为before或after,options常用的有ol skip summarize*/

  5. rbreak location/options;/*location与options选项等同于break*/
  6. run;
复制代码

        其中Column 语句告诉 SAS 哪些变量该包括并以何种顺序,如果遗漏语句 column,SAS 默认在数据集中包括所有变量,如果遗漏选项 nowINDOWS,SAS 默认 启用交互 report 窗口。可以在report后增加选项 headline 和 headskip,为输出后报告预留出标题和副标题的空位。
        接下来我们将report与print、means 和 tabulate、sort进行对比 ,你会发现这是一个既简单又好用、还特别强大的命令。
1.替代print  
        假设学校随机对三个班级发放糖果,牛奶糖(candy1)以及咖啡糖(candy2),接下来对不同班级男(m)女生(f)所获得的糖果数进行调查统计,数据输入如下:

         分别使用report以及print对数据进行分析,代码输入以及结果展示如下(由于report命令中,默认对数值变量进行加和处理,因此我们适用define variable-list/display对变量candy1以及candy2中每个变量值创建一行):

proc print data=candy noobs;
var candy1 candy2;
title 'the result of print';
run;
proc report data=candy missing headline;
column candy1 candy2;
define candy1/display;
define candy2/display;
title 'the result of report';
run;
2.report和sort
        分别使用report以及sort对数据进行分析,代码输入以及结果展示如下:
/*sort的结果代码*/
proc sort data=candy out=candys;
by candy1 descending candy2;
run;
proc print data=candys noobs;
var candy1 candy2;
title 'the result of sort';
run;
/*report的结果代码*/
proc report data=candy missing nowindows;
column candy1 candy2;
define candy2/order descending;
define candy1/order ;
title 'the result of report';
run;

3.report与tabulate、means
        由于means中的功能在report命令中基本都体现在制作报表的过程中,因此我们将在与tabulate对比时加入一些means可能包含的功能。下面我们将代码以及输出结果进行展示(我们使用mean平均值进行演示,不过由于没有重复值,因此结果与原数据并无区别,至于means中其他功能如pctn、max之类也是大同小异):
/*tabulate代码*/
proc tabulate data=candy missing;
class class sex;
var candy1 candy2;
table class='',sex=''*(candy1*format=best2. candy2*format=best2.)*mean='';
title 'the result of tabulate';
run;
/*report代码*/
proc report data=candy missing nowindows;
column class sex, (candy1 candy2),mean;
define class /group '';
define sex/across '';
define mean/'';
title 'the result of report';
run;
4.其他
        report语句中还有break、rbreak、compute的其他用法,由于不是本文立意所在,不在赘述。
        另外,本人水平有限,对于数据处理以及sas应用难免存在一定不足,但上述sas代码都是行之有效的,希望大家批评指正的同时给出宝贵意见。
————————————————
版权声明:本文为CSDN博主「等雪的人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_72521603/article/details/126189499

二维码

扫码加我 拉你入群

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

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

关键词:proc report Report repor Port repo sas

沙发
三江鸿 发表于 2022-10-2 20:34:38 来自手机
又一个国庆快乐
点赞支持

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-1 12:11