[英]How to insert dash symbols into character variables (SAS)?
因此,在SAS中,我有一個長度為10的字符類型變量fooword
。 我要完成的是在應用自定義格式時
format fooword $fooformat.;
每兩個符號(從右到左)之后會顯示破折號。 換句話說, BERRY看起來像B-ER-RY,而STRAWBERRY看起來像ST-RA-WB-ER-RY 。
當然,我可以創建一個更長的新變量,並使用一堆substr()
添加破折號,但是在我看來這似乎是一個糟糕的解決方案。
所以...
proc format;
value $fooformat
???
;
run;
遺憾的是,這種格式是不可能的。 可以使用FCMP函數或正則表達式。 可能有效的正則表達式如下所示:
data test;
length origtext fintext $50;
input origtext $;
fintext=prxchange('s/([a-z]{2})(?=[a-z])/$1-/io',-1,origtext);
put origtext= fintext=;
datalines;
BLACKHOLES
GRAVITYWELL
DOREMIFASOLATI
;;;;
run;
查找2個字母字符,然后正向查找另一個字母字符(這樣就不會在末尾扔一個字符),然后替換為相同的字母和破折號。 您可以創建一個FCMP函數來執行此操作,或者簡單地遍歷整個字符串中的破折號。 如果沒有實際的細節,那將與用法格式更加相似。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.