Eliminación de los primeros 4 caracteres de una columna junto con un carácter especialHola,
Tengo una columna que es una descripción de muestra y siempre hay ~números antes de la descripción que me gustaría eliminar de todas las filas. Solo una fila tiene el "~". Por ejemplo.
Muestra:
126: Descripción AB
291: Descripción XYZ
~619: Descripción
¿Existe un script JSL que elimine el "~", los primeros números de 3 dígitos y el ":" (incluido el espacio) de todas las filas dentro de la columna Muestra? Los datos que estoy viendo siempre tienen números de 3 dígitos al frente junto con : y espacio. El problema es eliminar el ~ de una de las filas.
Agradezco la ayuda
jose
Automatización y secuencias de comandosventanasRe: Eliminar los primeros 4 caracteres de una columna junto con un carácter especialAquí hay una forma, esencialmente recortando el espacio inicial de la última "palabra", usando ":" como delimitador. Hay otras formas, incluyendo Regex.
/*JMP STATISTICAL DISCOVERY LLC (“JMP”) PERMITS THE USE OF THIS COMPUTER SOFTWARE CODE (“CODE”) ON AN AS-IS BASIS AND AUTHORIZES YOU TO USE THE CODE SUBJECT TO THE TERMS LISTED HEREIN. BY USING THE CODE, YOU AGREE TO THESE TERMS. YOUR USE OF THE CODE IS AT YOUR OWN RISK. JMP MAKES NO REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRIGEMENT, AND TITLE, WITH RESPECT TO THE CODE.
You may use the Code solely as part of a software product you currently have licensed from JMP, JMP’s parent company SAS Institute Inc. (“SAS”), or one of JMP’s or SAS’s subsidiaries or authorized agents (the “Software”), and not for any other purpose. The Code is designed to add functionality to the Software but has not necessarily been tested. Accordingly, JMP makes no representation or warranty that the Code will operate error-free. JMP is under no obligation to maintain, support, or continue to distribute the Code.
Neither JMP nor its licensors shall be liable to you or any third-party for any general, special, direct, indirect, consequential, incidental, or other damages whatsoever arising out of or related to your use or inability to use the Code, even if JMP has been advised of the possibility of such damages. Except as otherwise provided above, the Code is governed by the same agreement that governs the Software. If you do not have an existing agreement with JMP or SAS governing the Software, you may not use the Code.
JMP and all other JMP Statistical Discovery LLC product or service names are registered trademarks or trademarks of JMP Statistical Discovery LLC in the USA and other countries. ® indicates USA registration. Other brand and product names are registered trademarks or trademarks of their respective companies.
*/
Names Default To Here (1);
//make data table
dt = New Table( "Untitled",
Add Rows( 3 ),
New Column( "Sample",
Character,
"Nominal",
Set Values(
{"126: Description AB", "291: Description XYZ", "~619: Description"}
)
)
);
//remove unwanted characters
for each row (dt,
:Sample = trim (word (-1, :Sample, ":"))
);Re: Eliminar los primeros 4 caracteres de una columna junto con un carácter especialHola @Nalgas ,
Dado que la parte que le gustaría conservar siempre está separada del resto de la cadena por un espacio en blanco, puede usar una fórmula de recodificación como la siguiente para conservar todas las "palabras" excepto la primera (que es una combinación de caracteres y números, pero no separados por espacios en blanco). Simplemente puede cambiar el nombre de la columna "Columna 1" por el nombre de la columna en la que tiene la descripción de la muestra.
Recode(
:Column 1,
{Word(
[2 -1],
_rcNow,
Get Whitespace Characters() ||
Get Punctuation Characters( Exclude Chars( "'-" ) ),
Unmatched( _rcNow )
)}
)
Espero que esta otra opción te ayude,
Re: Eliminar los primeros 4 caracteres de una columna junto con un carácter especialHay muchas maneras diferentes de hacer esto, a continuación hay una opción que usa expresiones regulares
Regex("126: Description AB", "~?\d{3}: (.+)$", "\1");
Regex("291: Description XYZ", "~?\d{3}: (.+)$", "\1");
Regex("~619: Description", "~?\d{3}: (.+)$", "\1");
https://regex101.com/r/nMilGt/1 explica un poco la expresión regular
