前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAS-临床试验程序制表合集(一)

SAS-临床试验程序制表合集(一)

作者头像
Setup
发布2020-07-13 10:47:30
3.2K1
发布2020-07-13 10:47:30
举报
文章被收录于专栏:SAS程序分享号号号

一个多月前,小编写了一篇SAS-临床试验程序绘图合集(一),今天小编要写的是统计编程的另外一块,统计表格的制作。本来也想按照绘图合集的形式,按表格样式/类型写程序,然后分享。后来思考良久后,还是先决定写一下制表输出排版相关的小技巧,再来将各种类型的表格程序整理一下。

RTF

SAS表格的输出,基本上都是以RTF的形式进行的。小编历史文章也写过很多相关的推文。今天主要内容之一就是RTF排版控制,当然Tamplate这里先不介绍了。因为基本不用自己写Template,大家都与自己的模版,如果没有,下载本文代码,也就有了三线表的Template。今天要分享的是通过在数据集中插入代码,实现输出排版的控制。

代码

代码语言:javascript
复制
data class;
    length Setup text desc $10000.;
    text="Setup的测试";
    setup=text;
    desc="无插入";
    output;
    setup="(*ESC*)R/RTF'\tab "||strip(text);*缩进多种方式:1;
    desc="采用\tab缩进";
    output;
    setup="(*ESC*)R/RTF'\u32?\u32?\u32?\u32? "||strip(text);*缩进多种方式:2;
    desc="采用\u32缩进";
    output;
    setup="(*ESC*)R/RTF'\b "||strip(text);*字体加粗;
    desc="采用\b控制字体粗细";
    output;
    setup="(*ESC*)R/RTF'\fs24 "||strip(text);*字体大小;
    desc="采用\fs控制字体大小";
    output;
    setup="setup (*ESC*)R/RTF'{\fs32\b ssss} "||strip(text);*利用{}控制文本局部变化;
    desc="采用\fs控制字体大小,利用{}控制文本局部变化";
    output;
    setup="setup (*ESC*)R/RTF'{\sub ssss} "||strip(text);*上角标控制;
    desc="采用\sub控制角标";
    output;
    setup="22setup (*ESC*)R/RTF'{\super 2} "||strip(text);*下角标控制;
    desc="采用\super";
    output;
    setup="setup (*ESC*)R/RTF'\par "||strip(text);*文本换行;
    desc="采用\par文本换行";
    output;
    setup="setup (*ESC*)R/RTF'\brdrb\brdrs "||strip(text);*下划线;
    desc="采用\brdrb\brdrs实现下划线";
    output;
    setup="(*ESC*){unicode '03bc'x}(*ESC*){unicode '006d'x}(*ESC*){unicode '006f'x}(*ESC*){unicode '006c'x}(*ESC*){unicode '002f'x}(*ESC*){unicode '004c'x}";*特殊符号;
    desc="Unicode 表达特殊符号";
    output;
    setup="(*ESC*){unicode '006b'x}(*ESC*){unicode '0067'x}(*ESC*){unicode '002f'x}(*ESC*){unicode '006d'x}(*ESC*){unicode '00b2'x}";
    desc="Unicode 表达特殊符号";
    output;
    setup="(*ESC*){unicode '0068'x}(*ESC*){unicode '0074'x}(*ESC*){unicode '0074'x}(*ESC*){unicode '0070'x}(*ESC*){unicode '0073'x}(*ESC*){unicode '003a'x}(*ESC*){unicode '002f'x}(*ESC*){unicode '002f'x}(*ESC*){unicode '0077'x}(*ESC*){unicode '0077'x}(*ESC*){unicode '0077'x}(*ESC*){unicode '002e'x}(*ESC*){unicode '0073'x}(*ESC*){unicode '0061'x}(*ESC*){unicode '0073'x}(*ESC*){unicode '002d'x}(*ESC*){unicode '0070'x}(*ESC*){unicode '0068'x}(*ESC*){unicode '0061'x}(*ESC*){unicode '0072'x}(*ESC*){unicode '006d'x}(*ESC*){unicode '0061'x}(*ESC*){unicode '002e'x}(*ESC*){unicode '0063'x}(*ESC*){unicode '006f'x}(*ESC*){unicode '006d'x}(*ESC*){unicode '002f'x}(*ESC*){unicode '0073'x}(*ESC*){unicode '0061'x}(*ESC*){unicode '0073'x}(*ESC*){unicode '002d'x}(*ESC*){unicode '0070'x}(*ESC*){unicode '0068'x}(*ESC*){unicode '0061'x}(*ESC*){unicode '0072'x}(*ESC*){unicode '006d'x}(*ESC*){unicode '0061'x}(*ESC*){unicode '002f'x}(*ESC*){unicode '0075'x}(*ESC*){unicode '006e'x}(*ESC*){unicode '0069'x}(*ESC*){unicode '0063'x}(*ESC*){unicode '006f'x}(*ESC*){unicode '0064'x}(*ESC*){unicode '0065'x}(*ESC*){unicode '0063'x}(*ESC*){unicode '0068'x}(*ESC*){unicode '0067'x}(*ESC*){unicode '002e'x}(*ESC*){unicode '0070'x}(*ESC*){unicode '0068'x}(*ESC*){unicode '0070'x}";*特殊符号;
    desc="Unicode 表达文本";
    output;
run;

proc report data=class nowd headskip headline split='|' missing nocenter;
    column setup desc ;
    define setup / display "展现" style(header)=[just=left] style(column)=[just=left cellwidth=20% asis=on] flow;
    define desc / display "描述"   style(header)=[just=left] style(column)=[cellwidth=80% just=left asis=on] flow;

run;

效果

解释

日常编程中,常见的几种改变输出表格内容及排版的方式,如上代码部分,基本上每个参数都有注释,这里就不在介绍了。当然需要额外说明的是Unicode可以做很多事,在SAS或者输出中,一些特殊字符可能无法正确的展现在输出的RTF中,或者规避一些特殊字符影响程序等情况,我们可以将文本转化成Unicode编码后进行输出。如上部分,有相应Unicode的写法。

Unicode

那么问题来了,如何转化Unicode,各种符号/文本对应的Unicode编码怎么获取。为了解决这一问题,日前,小编的网站上线了Unicode编码在线转化功能。

如上图,在一个文本框输入需要转化的内容,点击UnicodeforRTF按钮即可实现在线生成用于RTF输出的Unicode编码,直接复制使用。如有需要,欢迎大家前往,下面为网站链接。

UnicodeforRTF:https://www.sas-pharma.com/sas-pharma/unicodechg.php

Pharma-tools:https://www.sas-pharma.com/

代码下载:点击原文或浏览网站此目录下

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAS程序分享号号号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档