<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,
我正在嘗試使用SAS PRX函數從我的數據集中提取子字符串。但它只返回完全匹配,而我需要它更靈活,並提取符合各種條件的那些。
我在下面複製了我的數據。如您所見,我的數據中的一個變量是“brandmodel”,其中包含品牌名稱和特定相機的型號#。我需要為模型#s單獨創建一個列。所以我使用PRX函數來提取它們,因為它們通常遵循以下模式之一:
例如:JX100或JX10或JX1(即1-2個字母,緊接著1-3個數字。這個我的程序(複製到數據下面)可以處理。但是我遇到問題的地方是:如何提取那些字母與數字之間用空格或連字符分隔的模型#,如何將它們提取到與它們完全相同的“模型”列中?此外,一些觀察結果沒有模型#s,我怎樣才能將它們設置為缺失而不是完全丟棄?
您可以提供任何有關這種困境的幫助,我們將不勝感激。希望能盡快收到您的回音。
謝謝!
黃綠色
Brandmodel |價格
| iTwist F124數碼相機-red | 49.00 | |
| Vivitar IF045數碼相機 - 藍色| 72.83 | |
| 液體圖像水下相機面膜| 128.00 |
| Impact系列攝像機MX護目鏡â€| 188.00 |
| 奧林巴斯VR 340 | 銀| 148.00 | | |
| 奧林巴斯TG820數碼相機黑色| 278.00 |
| 奧林巴斯VR 340 16MP 10x 3.0 LCD紅色| 148.00 |
| Vivitar VX137-Pur數碼相機| 39.00 | |
| |
| 奧林巴斯SZ-12數碼相機 - 黑色| 198.00 |
| 奧林巴斯VG160數碼相機紅| 98.00 | |
| 奧林巴斯VR340 | 紫| 148.00 | | |
| 奧林巴斯TG820數碼相機銀| 298.00 |
| 奧林巴斯TG820數碼相機藍| 278.00 |
| 奧林巴斯VG160數碼相機 | 橙色| 98.00 | | |
| 奧林巴斯TG820數碼相機紅| 298.00 |
| Fujifilm FinePix AX500紅色| 78.63 | |
| 佳能A2300銀| 98.63 | | |
| 佳能A810紅色| 75.00 | | |
| 尼康Coolpix S2600數碼相機 - 紅色| 88.00 |
| 尼康Coolpix L25數碼相機 - 銀色| 82.00 |
| 卡西歐Exilim ZS10BK | 128.00 | | |
| | |
| 奧林巴斯TG-310 14 MP藍色數碼相機| 148.00 |
| Hipstreet Kidz數碼相機 - 藍色| 14.93 | |
| 卡西歐Exilim ZS10PK | 128.00 | | |
| 奧林巴斯TG-310 14萬像素數碼相機 | 橙色| 148.00 |
SAS計劃
數據 walnov21p2;
長度 brandmodel $ 80 ;
INFILE “G:\文件2 \數據\ store_nov21 \ storenv21p2.csv” firstobs = 2 DLM = “|” DSD ;
輸入 brandmodel價格;
re = prxparse( '/ [[:alpha:]] {1,3} \ d {1,4} /' );
如果 prxmatch(re,brandmodel) 然後
做 ;
模型= prxposn(RE, 0 ,brandmodel);
產量 ;
結束 ;
跑 ;