如何使用SAS在RTF文件顯示特殊字符
通常來(lái)講,注釋語(yǔ)句有四種:
1、* message;
2、COMMENT message;
3、/* message */
4、%* message;
第一種的主要限制是注釋之中不得有“;”符號(hào)。通常用于非宏程序之中。
第二種和第一種相同。
第三種的主要限制是不得包含另外的注在用SAS做臨床試驗(yàn)相關(guān)的listing, table的過(guò)程中,我們可能會(huì)遇到在列表或表格中顯示上標(biāo)、下標(biāo)、大于等于號(hào)等特殊符號(hào)的情況。下面介紹在SAS中如何編程使rtf文件顯示特殊字符。
方法1:使用~{super }, ~{sub}顯示上、下標(biāo)
data a;
length var1 $100.;
var1="a~{super 2}+b~{super 2}=c~{super 2}";
output;
var1="This is something that needs a footnote.~{super 1}";
output;
var1 = "the carbon dioxide molecule is CO~{sub 2}";
output;
run;
ods listing close;
ods rtf;
title "特殊字符";
proc report data=a;
column var1;
define var1/"上標(biāo)和下表例子";
run;
ods rtf close;
ods listing;
方法2:使用unicode
步驟1:在電腦上搜索字符映射表(character map),查到對(duì)應(yīng)特殊字符的unicode
從上圖我們可以看到,小于等于號(hào)的unicode為2264
步驟2:在sas中使用unicode
data le;
length var1 $100.;
var1="~{unicode 2264}10";
run;
run;
ods listing close;
ods rtf;
proc report data=le;
column var1;
define var1 /"Demo of unicode" style(column)=[cellwidth=20%];
run;
ods trf close;
圖片語(yǔ)句。
第四種用于在宏程序里做注釋,其功能和第一種在非宏的文本里很相似。第三種注釋對(duì)宏和非宏程序并無(wú)區(qū)分。如果把第一種方式移植到宏程序里,出錯(cuò)誤的機(jī)率非常大。舉一例:
%macro comments;
*%do i=1;
%mend;
%comments;
方式1和2屬于完整的SAS聲明語(yǔ)句。他們?cè)诔绦蚓幾g時(shí)總被TOKENIZER和MACRO FACILITY處理;因此無(wú)法含有“;”及非對(duì)稱的引號(hào)。在宏編譯時(shí)它們被作為文本常量存儲(chǔ),因此在注釋里的宏聲明語(yǔ)句將被執(zhí)行。比如說(shuō)以上%DO命令將被執(zhí)行。因此,SAS建議最好不要在宏程序里使用1和2類的注釋語(yǔ)句。
與此相反,第3類注釋語(yǔ)句不被TOKENIZED(標(biāo)記化),而只是作為字符串處理。這一類的語(yǔ)句并沒(méi)有在編譯的宏程序里儲(chǔ)存。
對(duì)于第4類的注釋語(yǔ)句,因其文本并非是常量因此沒(méi)有在編譯的宏程序里儲(chǔ)存。但是作為完整的宏程序語(yǔ)句,它的確為MACRO FACILITY處理。綜上所述,只有3和4類的注釋語(yǔ)句應(yīng)被用于隱藏宏聲明程序。