在做資料統計分析之前,我們都會對資料做一些處理,尤其是文字型的變數,其中可能某一段對我們的分析有特殊涵義,以電話號碼為例,區碼就是一個很重要的資訊,另外每個區域的電話長度也都不一樣,所以可以藉此特性檢查電話號碼有無錯誤,下面我們將針對下面一個簡單的資料,使用較常使用5個的文字函數做資料處理
原始資料
![01 01](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c960372135.jpg)
範例1:從電話中取出區域代碼
Step1.選擇查詢產生器
![02 02](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c9613948b0.jpg)
Step2.將原始資料變數拉入右側的選取資料中後,點選![03 03](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c9615d82f0.jpg)
![03 03](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c9615d82f0.jpg)
![04 04](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c9626010af.jpg)
Step3.選擇進階運算式->下一步
![05 05](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c962e0e18a.jpg)
Step4.這有三大區塊,左下方是函數和變數的選擇區塊,右下方是函數的說明區塊,上方是函數輸入區塊。
在這我們用了2個函數SUBSTR和FIND,因為我們要從電話號碼中擷取部分的文字,而SUBSTR函數的用處就是擷取變數的部分字串,然而在電話號碼中的區碼有2碼也有3碼,所以我們需要FIND函數是要找尋某文字符號的位置來決定要截取的長度
用法:
SUBSTR(字串或變數,截取起始位置,截取長度);
FIND(字串或變數,”文字符號”)
以台北市跟南投縣的電話區域號碼為例(02)或(049)
截取的文字皆從第2個位置開始,截取長度我們利用找尋 “)” 位置的方法
FIND((02),”)”)=4
FIND((049),”)”)=5
所以我們可以利用FIND(t1.phone, ")")-2來決定長度
故我們最終的式子為:
SUBSTR(t1.phone, 2, FIND(t1.phone, ")")-2)
|
![06 06](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c963f8197c.jpg)
Step5.輸入欄名稱跟標籤後按完成
![07 07](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c9650e4449.jpg)
範例2:計算電話的長度
Step1.點選![08 08](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c96532dd77.jpg)
![08 08](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c96532dd77.jpg)
![09 09](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c96682622c.jpg)
Step2. 選擇進階運算式->下一步
![10 10](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c9671c24b1.jpg)
Step3.藉由左下方是函數和變數的選擇區塊,輸入上方是函數輸入區塊,結果如下,後下一步。
電話的長度是全長扣掉區碼和符號的個數,用LENGTH((02)1234-5678)算出全部長度13,再利用FIND(t1.phone, ")")-2算出區碼的長度,再扣掉3個符號((,),-)
故我們最終的式子為:
LENGTH(t1.phone)-(FIND(t1.phone, ")")-2)-3
|
![11 11](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c9686d9496.jpg)
Step4. 輸入欄名稱跟標籤後按完成
![12 12](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c9692f1262.jpg)
範例3.合併姓和名的兩個變數成為全名
Step1. 點選![13 13](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c969438e69.jpg)
![13 13](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c969438e69.jpg)
![14 14](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c96a3df8c3.jpg)
Step2. 選擇進階運算式->下一步
![15 15](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c96c7c75ed.jpg)
Step3. 藉由左下方是函數和變數的選擇區塊,輸入上方是函數輸入區塊,結果如下,後下一步。
CATX("",t1.lname,t1.fname)
|
![16 16](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c96e25a672.jpg)
Step4. 輸入欄名稱跟標籤後按完成
![17 17](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c96ef029b4.jpg)
Step5.按執行
![18 18](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c96fc97157.jpg)
我們就可以得到我們所要的結果
![19 19](https://blogs.sas.com/content/sastaiwan/files/2020/02/522c97088b4fa.jpg)
Tags