<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Estoy intentando usar la función SAS PRX para extraer una subcadena de mi conjunto de datos. Pero solo devuelve las coincidencias exactas, mientras que necesito que sea más flexible y extraiga aquellas que coincidan con una variedad de condiciones.
He copiado mis datos a continuación. Como puede ver, una de las variables en mis datos es "brandmodel" que contiene tanto el nombre de la marca como el número de modelo de una cámara en particular. Necesito tener una columna separada solo para el modelo # s. Así que estoy usando la función PRX para extraerlos, ya que normalmente siguen uno de los siguientes patrones:
Por ejemplo: JX100 o JX10 o JX1 (es decir, 1-2 alfabetos, seguidos inmediatamente por 1-3 dígitos). Este mi programa (copiado debajo de los datos) puede manejar. Pero donde me encuentro con problemas es: ¿cómo extraer esos # de modelo donde los alfabetos están separados de los dígitos por un espacio o un guión, y cómo los extraigo en la misma columna "Modelo" que todos los que tienen con ellos? Además, algunas de las observaciones no tienen # s de modelo, ¿cómo puedo hacer que se configuren como faltantes en lugar de eliminarse por completo?
Cualquier ayuda que pueda proporcionar con este dilema sería muy apreciada. Esperando a oir de ti pronto.
¡Gracias!
Kelly
Brandmodel | Precio
| Cámara digital iTwist F124 - rojo | 49.00 | |
| Cámara digital Vivitar IF045 - Azul | 72.83 | |
| Máscara de cámara subacuática Liquid Image | 128.00 |
| Cámara de video Impact Series MX Gogglesâ „¢ | 188.00 |
| Olympus VR 340 | Plata | 148.00 | | |
| Cámara digital Olympus TG820 Negro | 278.00 |
| Olympus VR 340 16MP 10x 3.0 LCD rojo | 148.00 |
| Cámara digital Vivitar VX137-Pur | 39.00 | |
| |
| Cámara digital Olympus SZ-12 - Negro | 198.00 |
| Olympus VG160 Cámara Digital Roja | 98.00 | |
| Olympus VR340 | Púrpura | 148.00 | | |
| Olympus TG820 Cámara de fotos digital plateada | 298.00 |
| Cámara Digital Olympus TG820 Azul | 278.00 |
| Cámara Digital Olympus VG160 | Naranja | 98.00 | | |
| Cámara digital Olympus TG820 Rojo | 298.00 |
| Fujifilm FinePix AX500 Rojo | 78.63 | |
| Canon A2300 Plata | 98.63 | | |
| Canon A810 Rojo | 75.00 | | |
| Cámara digital Nikon Coolpix S2600 - Rojo | 88.00 |
| Cámara digital Nikon Coolpix L25 - Plateado | 82.00 |
| Casio Exilim ZS10BK | 128.00 | | |
| | |
| Cámara digital Olympus TG-310 14 MP azul | 148.00 |
| Cámara digital Hipstreet Kidz - Azul | 14.93 | |
| Casio Exilim ZS10PK | 128.00 | | |
| Cámara digital Olympus TG-310 14 MP | naranja | 148.00 |
Programa SAS
datos walnov21p2;
longitud brandmodel $ 80 ;
en archivo "G: \ File2 \ data \ store_nov21 \ storenv21p2.csv" Firstobs = 2 dlm = "|" dsd ;
entrada precio brandmodel;
re = prxparse '/ [[: alpha:]] {1,3} \ d {1,4} /' );
Si prxmatch (re, brandmodel) entonces
hacer ;
model = prxposn (re, 0 , modelo de marca);
salida ;
fin ;
correr ;