<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);
产量 ;
结束 ;
跑 ;