楼主: a6566792
20782 13

关于proc report [推广有奖]

  • 4关注
  • 5粉丝

已卖:3份资源

硕士生

51%

还不是VIP/贵宾

-

威望
0
论坛币
254 个
通用积分
0.1061
学术水平
18 点
热心指数
17 点
信用等级
16 点
经验
7842 点
帖子
216
精华
0
在线时间
124 小时
注册时间
2012-11-6
最后登录
2018-4-3

楼主
a6566792 在职认证  发表于 2013-1-15 11:29:09 |AI写论文
50论坛币

在不改变原数据集的情况下,直接使用proc report产生报告,要求:字符过长换行的时候自动在前面产生两个或三个空格,与本身对齐。(如果解释起来比较麻烦,想能推荐资料,是否有这样的功能)

原数据集:(1.2.3.前面有两个空格,表示子项)

病理诊断                                                                                                        日期

  1.某某某 某某某 某某某某某某某 某某某某某某某。             2012/01/25

  2. 某某某某某某  某某。                                                                    2012/01/25

  3. 某某某某某某  某某某某某某某某。                                          2012/01/25

得到结果:

病理诊断                                                             日期

    1.某某某 某某某 某某某某                   2012/01/25

某某某 某某某某某某某。                  

    2. 某某某某某某  某某。                        2012/01/25

    3. 某某某某某某  某某某                        2012/01/25

某某某某某。   

   

需要report出来的样子:

病理诊断                                                             日期

    1.某某某 某某某 某某某某                   2012/01/25

    某某某 某某某某某某某。                  

    2. 某某某某某某  某某。                        2012/01/25

    3. 某某某某某某  某某某                        2012/01/25

    某某某某某。                          

下面是我的report,但是做不出那样的对齐功能:查了一些proc compute资料,要么是在数据before,要么是after,都无法实现(只是个例子,并不与上面数据所对应)。

*** Output file as rtf file using PROC REPORT;

ods listing close;

ods rtf file="&_table.t&PgmNm..rtf" style=global.rtf;

title2 "Table &TFLNo. (&_page.)";

footnote3 j=l "n = number of patients experiencing event    c = number of events";

proc report data=qc_tab.t_&PgmNm headskip spacing=1 split='|' missing nowd

  style(header)=[just=center protectspecialchars=off]

      style(column)=[just=center asis=on];

  column  _var_ date;

  define _var_     / display "System Organ Class|Preferred Term" flow style(column)=[cellwidth=35% just=left] style(header)=[just=left];

  define date      / display "Nilotinib|N=&n1 |n(%)/c" flow

style(column)=[cellwidth=15%] style(header)=[just=center];

/*  break after _group / skip;*/

run;

ods rtf close;

ods listing;   

最佳答案

pobel 查看完整内容

这个应该需要用到RTF code来控制。 1. 首先要加上ODS的escapechar=选项。 如 ods excapechar="^"; 2. 楼主需要的效果应该属于缩进,相对应的RTF code是: ^R'\li400 ' 400 可以换成其他的数,数的大小表示缩进的多少。 楼主需要在数据集中将_var_变量需要缩进的值前面加上这个RTF code。 (不同版本的office,RTF code可能会不同) 楼主可以试一下下面的代码: %let indent=^R'\li400 '; data * ...
关键词:proc report Report repor Port repo report 资料
已有 1 人评分经验 收起 理由
eijuhz + 40 精彩帖子

总评分: 经验 + 40   查看全部评分

本帖被以下文库推荐

沙发
pobel 在职认证  发表于 2013-1-15 11:29:10
a6566792 发表于 2013-1-15 15:17
额,大家都不知道吗?
  希望Imasasor、davil2000 、大数据之魂、playmore、peble 等其他几位高人能给点提 ...
这个应该需要用到RTF code来控制。

1. 首先要加上ODS的escapechar=选项。
   如 ods excapechar="^";

2. 楼主需要的效果应该属于缩进,相对应的RTF code是: ^R'\li400 '
    400 可以换成其他的数,数的大小表示缩进的多少。
   楼主需要在数据集中将_var_变量需要缩进的值前面加上这个RTF code。
   (不同版本的office,RTF code可能会不同)

楼主可以试一下下面的代码:

%let indent=^R'\li400 ';

data ***;
   set ***;
   _all_="&indent."||_var_;
run;


*** Output file as rtf file using PROC REPORT;
ods listing close;
ods rtf file="&_table.t&PgmNm..rtf" style=global.rtf;
ods escapechar='^';

title2 "Table &TFLNo. (&_page.)";
footnote3 j=l "n = number of patients experiencing event    c = number of events";


proc report data=qc_tab.t_&PgmNm headskip spacing=1 split='|' missing nowd
  style(header)=[just=center protectspecialchars=off]
      style(column)=[just=center asis=on  protectspecialchars=off];
  column  _var_ date;
  define _var_     / display "System Organ Class|Preferred Term" flow style(column)=[cellwidth=35% just=left] style(header)=[just=left];
  define date      / display "Nilotinib|N=&n1 |n(%)/c" flow
style(column)=[cellwidth=15%] style(header)=[just=center];
/*  break after _group / skip;*/
run;

ods rtf close;

ods listing;   
已有 6 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
eijuhz + 60 精彩帖子
Bugjay + 1 + 1 + 1 cool!
Eternal0601 + 1 + 1 + 1 厉害
a6566792 + 1 + 1 + 1 好人
webgu + 1 + 1 + 1 精彩帖子
Imasasor + 100 + 100 + 5 + 5 + 5 好人啊

总评分: 经验 + 160  论坛币 + 100  学术水平 + 9  热心指数 + 9  信用等级 + 9   查看全部评分

和谐拯救危机

藤椅
a6566792 在职认证  发表于 2013-1-15 15:17:32
额,大家都不知道吗?
  希望Imasasor、davil2000 、大数据之魂、playmore、peble 等其他几位高人能给点提示。。。 {:soso_e179:}

板凳
Imasasor 发表于 2013-1-15 18:12:01
a6566792 发表于 2013-1-15 15:17
额,大家都不知道吗?
  希望Imasasor、davil2000 、大数据之魂、playmore、peble 等其他几位高人能给点提 ...
不要把我跟他们相提并论,不要以为是版主就有多牛,我跟他们根本不是一个级别的
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

报纸
a6566792 在职认证  发表于 2013-1-16 09:35:25
pobel 发表于 2013-1-15 17:30
这个应该需要用到RTF code来控制。

1. 首先要加上ODS的escapechar=选项。
我需要的不仅仅是变量的缩进,上面‘病理诊断’也是数据中的,相当于目录的样子,它不需要缩进,仅仅是下面的子项缩进,您的建议相当好,我马上去试试,也可能需要再结合一下compute <column> if then 功能
[em17][em17]

地板
a6566792 在职认证  发表于 2013-1-16 09:37:47
Imasasor 发表于 2013-1-15 18:12
不要把我跟他们相提并论,不要以为是版主就有多牛,我跟他们根本不是一个级别的
额,都是前辈,或者前前辈……

7
pobel 在职认证  发表于 2013-1-16 09:51:42
a6566792 发表于 2013-1-16 09:35
我需要的不仅仅是变量的缩进,上面‘病理诊断’也是数据中的,相当于目录的样子,它不需要缩进,仅仅是下 ...
只要把数据集中需要缩进的变量的值前面加上相应的RTF code应该就可以了。不需要缩进的可以不加。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
a6566792 + 1 + 1 + 1 非常感谢

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

和谐拯救危机

8
a6566792 在职认证  发表于 2013-1-16 10:19:37
pobel 发表于 2013-1-16 09:51
只要把数据集中需要缩进的变量的值前面加上相应的RTF code应该就可以了。不需要缩进的可以不加。
嗯,非常感谢您的帮助,采用您的办法后来又新建了一个不需要打印的变量,使用compute做了下选择,得到想要的结果了,非常感谢~~祝工作顺利,新一年里事事顺心

9
zhao9171 发表于 2013-2-3 10:10:42
jie jue le?

10
a6566792 在职认证  发表于 2013-2-4 09:15:45
zhao9171 发表于 2013-2-3 10:10
jie jue le?
是的,楼上回复

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

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