簡體   English   中英

如何在字符變量(SAS)中插入破折號?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM