公告

[公告]
2014/01/17
由於已經是faculty的關係,不太有足夠時間寫部落格。因此更新的速度會相當緩慢。再加上近幾年來SAS GLOBAL FORUM沒有出現讓我覺得驚艷的技術文件,所以能分享的文章相對也減少許多。若有人推薦值得分享的SAS技術文件,請利用『問題討論區』告知。

2013/07/19
臉書留言板的功能因為有不明原因故障,因此特此移除。而intensedebate的留言板因管理不易,也一併移除。目前已經開啟內建的 G+ 留言系統,所以請有需要留言的朋友,可直接至『問題討論區』裡面留言。


2011年6月18日 星期六

MORE CUSTOMIZATION?: CREATING SYMBOLS IN RTF FILES USING ODS

原文載點:http://www.lexjansen.com/pharmasug/2004/technicaltechniques/tt12.pdf

有時候想要在 SAS 輸出報表裡面寫一些標題或註解,需要加上一些科學符號、希臘字母、甚至是邏輯運算子等特殊符號時,得使用特別的方法顯示出來。這一篇 2004 年的 PHARMASUG 技術文件可供參考。

首先必須先去查這些特殊符號的 Unicode decimal number,因為 SAS 必須藉由這些代碼才能對應到特殊符號。查詢的網址如下:

http://www.alanwood.net/unicode/index.html

http://www.unicode.org/

以"alpha"這個希臘字母當做範例,程式如下:
ods escapechar="^";
%let symbol_alpha=%bquote(^R/RTF"\u945\") ;

第一行用ods escapechar來定義一個轉義字母,在此設定為"^"。SAS 看到轉義字母才知道後面的 Unicode 代碼是要轉成什麼特殊符號。接著用 %bquote 函式來把特殊符號做出來。把上面的程式複製到 SAS,再把紅色的 Unicode 換成你想要的 Unicode 即可。

一些常用的特殊符號的 Unicode 代碼:
希臘字母:http://www.alanwood.net/unicode/greek.html
數學符號運算子:http://www.alanwood.net/unicode/mathematical_operators.html
箭頭:http://www.alanwood.net/unicode/arrows.html
羅馬數字和分數:http://www.alanwood.net/unicode/number_forms.html
上標與下標:http://www.alanwood.net/unicode/superscripts_and_subscripts.html
其他:http://www.alanwood.net/unicode/letterlike_symbols.html

原文提供一個範例。假設要製作下列表格的註解:

程式如下:
footer f1 ;
define f1 ;
text
   " +Above Normal Range" "^1n"
   "-Below Normal Range" "^1n"
   "A reading &symbol_ge 40 for SGPT/ALT is considered Above Normal"  "^1n"
   "A reading &symbol_le 30 for SGPT/ALT is considered Below Normal"   "^1n" 
   "An example of &symbol_alpha." "^2n "
   "&font9.Output:" " &tab.&outdir.\&pgmonly..rtf" "^1n"
    "Source:&tab.&source."  ;
   style={font_face=Arial font_size=2.5 font_weight=medium background=white} ;
   just=left ;
end ; 

如果覺得這樣太麻煩,就送去Word編輯吧!

CONTACT INFORMATION

Richard Rowell
Connetics Corporation
3290 West Bayshore Road
Work: (650) 843-2876
rrowell@connetics.com
Jim Lenihan
15 Moonlight Ct
South San Francisco, CA 94080
Work: (650) 742-0131
jameslenihan@sbcglobal.net
CODE { display: block; /* fixes a strange ie margin bug */ font-family: Courier New; font-size: 8pt; overflow:auto; background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y; border: 1px solid #ccc; padding: 10px 10px 10px 21px; max-height:200px; height:200px; // for IE6 line-height: 1.2em; }