
SAS中最最最實用的5個字符串處理函數(shù)
本文將介紹SAS中處理字符串時最常用的5個函數(shù):
1. SUBSTR函數(shù):用以提取或替換特定位置的字符
2. TRANWRD函數(shù):用以替換特定字符
3. TRANSLATE函數(shù):用以替換字符排列順序
4. COMPRESS函數(shù):用以體剔除或保留特定字符
5. CAT函數(shù):用以拼接字符串
1、SUBSTR 函數(shù)
(1). (right of =) Function,提取字符:Substr(s,p,n)從字符串s中的第p個字符開始提取n個字符的子串。
example:
/*從x中提取第3-4個字符*/
data_null_;
x="1234ABCD";
y=substr(x,3,2);
put y=;
run;
輸出: y=34
(2). (left of =) Function,字符替換:Substr(s,p,n)=characters-to-replace,從變量s的p個字符開始替換n個字符
example:
/*從x中將第1-2個字符替換為EF*/
data_null_;
x="1234ABCD";
substr(x,1,2)="EF";
putx=;
run;
輸出:x=EF34ABCD
注意:
1. 必須是從字符變量中提取,對數(shù)值變量不起作用,必須轉(zhuǎn)換為字符變量,如果是數(shù)字變量,在調(diào)用substr函數(shù)時會自動把數(shù)字變量轉(zhuǎn)為字符變量,不過需要注意的是轉(zhuǎn)化為的字符變量采用的是best12.格式。
2. n的長度不能超過p后面的長度,例如s=scorecard,b=Substr(s,5,5)系統(tǒng)會有提示。
3. 如果缺失n的話,SAS則會提取p后面全部字符,如果是替換的話,則不能缺失n。
4. 對于漢字的截取若使用substr函數(shù)將輸出亂碼,使用ksubstr函數(shù)即可,另外,ksubstrb函數(shù)可針對字節(jié)進行截取。
2. TRANWRD函數(shù)
TRANWRD(s,s1,s2):從字符串s中把所有字符串s1替換成字符串s2
example:
/*從x中將字符"AB"替換為"ef"*/
data_null_;
x="ABabCDEFGABCD";
y=tranwrd(x,"AB","ef");
puty=;
run;
輸出:y=efabCDEFGefCD
注意:
TRANWRD函數(shù)的字符串替換區(qū)分大小寫。
3. TRANSLATE函數(shù)
TRANSLATE( to, s, from):將字符串s從from的排序轉(zhuǎn)換成to的排序
example:
/*將x中的字符串逆序輸出*/
data_null_;
x="ABCDE";
y=translate("54321",x,"12345");
puty=;
run;
輸出:y=EDCBA
4、COMPRESS函數(shù)
COMPRESS (,,)
source 指定一個要被移除字符的源字符串。
chars 指定一欄初始字符,默認它是要從source里移除的。
modifiers 指定一個修飾符,函數(shù)的具體功能。如:
a 增加(A - Z, a - z)到初始字符里(chars)。
d 增加數(shù)字到初始字符里(chars)。
f 增加下劃線和字母 (A - Z, a - z) 到初始字符里(chars)。
g 增加圖形字符到初始字符里(chars)。
k 不移除初始字符(chars)而是返回這些字符。
l 增加小寫字母(a - z)。
n 增加數(shù)字、下劃線和字母(A - Z, a - z)。
p 增加標點符號。
s 增加空格,包括空格,水平制表符,垂直制表符,回車符,換行符和換頁符。
t 剪掉尾部空格。
u 增加大寫字母(A - Z)。
w 增加可印刷的字符。
X 增加十六進制字符
example:
/*從x中將字符"A"及小寫字母剔除*/
data_null_;
x="ABabCDEFGABCD";
y=compress(x,"A","l");
puty=;
run;
輸出:y=BCDEFGBCD
注意:
1. 只有source,移除空格。
2. 只有source,chars時,從source中移除chars。
3.source ,chars,modifiers都有時,modifiers K決定保留還是移除。無K時,移除chars加上modifiers指定的。
5. CAT函數(shù)
CAT(A,B): 拼接字符串A和B并保留首尾全部空格(同A||B)
CATS(A,B): 拼接字符串A和B并去掉首尾全部空格(同strip(A)||strip(B))
CATX("x",A,B): 拼接字符串A和B并去掉首尾全部空格,并且在字符串之間加上一個指定的字符串"x"(同strip(A)||"x"||strip(B))
CATT(A,B): 拼接字符串A和B并去掉各字符串尾部空格(同trim(A)||trim(B))
example:
data_null_;
a=' a m ';
b=' l e a r n i n g ';
c=' S A S ';
s1=cat(a,b,c);
s2=cats(a,b,c);
s3=catx('_',a,b,c);
s4=catt('I',a,b,c);
puts1=/s2=/s3=/s4=;
run;
輸出:
s1=a m l e a r n i n g S A S
s2=a ml e a r n i n gS A S
s3=a m_l e a r n i n g_S A S
s4=I a m l e a r n i n g S A S
推薦學習書籍
《CDA一級教材》適合CDA一級考生備考,也適合業(yè)務及數(shù)據(jù)分析崗位的從業(yè)者提升自我。完整電子版已上線CDA網(wǎng)校,累計已有10萬+在讀~
免費加入閱讀:https://edu.cda.cn/goods/show/3151?targetId=5147&preview=0
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03