SAS編程:Quote函數(shù)的應用

最近Reveiw他人代碼的過程中,遇到了Quote函數(shù)的應用,我眼前一亮。這個函數(shù)我從未使用過,它的延伸應用確實可以提高編程的效率。

Quote函數(shù)的的功能非常簡單,向字符值添加雙引號(Adds double quotation marks to a character value)。可以參考示例代碼進行理解:

data class;
  set sashelp.class;
  name2 = quote(strip(name));
run;

結果如下:


Output 1

查看輸出結果,大家都應該覺得這個函數(shù)如此簡單,究竟能有什么妙用呢?我們可以使用Quote函數(shù)來構建IN判斷語句的條件范圍。具體來講,就是對每一個具體的條件選項使用Quote函數(shù),并將其保存在宏變量中,便于后續(xù)IN判斷語句的調用。參考示例代碼進行理解:

proc sql noprint;
  select quote(strip(name)) into : name_F separated by ", "
  from sashelp.class
  where sex="F";
quit;

%put &name_F;

data class2;
  set sashelp.class;
  if name in (&name_F.) then sex2 = "Female";
run;

宏變量的輸出結果如下:


Output 2

輸出數(shù)據(jù)集Class2如下:


Output 3

按照特定的條件選出name值內容,并加上引號保存到宏變量中,方便后續(xù)程序得應用。在這個舉例中,有人會覺得我直接在應用if sex = "F" then sex2 = "Female"不更方便快捷嗎?沒錯,在上面的例子中確實這樣做更方便,因為示例數(shù)據(jù)集中本身就含有實現(xiàn)目標條件的變量。但如果目標條件在其它一個或多個數(shù)據(jù)集中,這樣把目標條件范圍先整合到宏變量中,最后進行進一步引用就便利簡潔很多了。

以上。

若有疑問,歡迎評論區(qū)交流!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容