¿Cómo puedo escanear el texto en una columna y poner un término clave en otra columna?¡Hola a todos!
Esta es mi primera publicación en este foro, así que pido disculpas si no tiene el formato correcto. Estoy en el proceso de idear un nuevo script para analizar un conjunto de datos apilados de 12 experimentos. Necesito tomar algunas frases clave de nuestra columna "ID de lote" y organizarlas en otras columnas usando una fórmula/secuencia de comandos (preferiblemente fórmula). Entonces, en este escenario, necesito la frase "B01" para ir a la columna Biorreactor en la misma fila que el ID de lote que contiene esa frase, "VBTS-935" para hacer lo mismo con la columna Strain, y la fecha para hacer lo mismo con la columna Fecha. Así es como se formatean actualmente nuestros datos de texto, pero si alguien tiene sugerencias sobre cómo reformatearlos para un análisis más fácil, ¡hágamelo saber!
Gracias por la ayuda de antemano.
Automatización y secuencias de comandosOrganización de contenidoRe: ¿Cómo puedo escanear el texto en una columna y poner un término clave en otra columna?Hola @BunnyBoi12 ,
Sugeriría agregar fórmulas en las últimas 3 columnas. Aquí tienes algunos ejemplos que puedes investigar.
Biorreactor: palabra(2, :ID de lote, ":")
Strain: word(2, :Batch ID, ", ") // ¡Tenga en cuenta que también hay un espacio entre las comillas!
Fecha: palabra (3, :ID de lote, ", :")
Nota adicional sobre la columna de fecha, puede envolver la función word() en una función format() y formatear su fecha si lo desea.
Help > Scripting Index también es un excelente recurso para explorar funciones que pueden ser beneficiosas para usted.
Re: ¿Cómo puedo escanear el texto en una columna y poner un término clave en otra columna?Hay bastantes opciones sobre cómo podría realizar esto (word() y words() son algunas funciones que podría usar o Regex() si está familiarizado con las expresiones regulares).
Una cosa que también sugeriría es explorar Recode (haga clic derecho en el encabezado de la columna)

por ejemplo, tiene la opción Extraer segmentos (y muchas más)


Una vez que haya dividido su columna, debería poder obtener el script de Registro mejorado

Y Text To Columns que podría ayudarlo a convertir el gran problema en unos pocos más pequeños.

Además, cuando publica preguntas en la comunidad de JMP, generalmente es una buena idea si puede proporcionar algún tipo de datos (simulados o reales si se pueden compartir) e incluir la(s) columna(s) de resultados deseados al menos para algunas filas. ayuda al probar diferentes soluciones.
Re: ¿Cómo puedo escanear el texto en una columna y poner un término clave en otra columna?¡Increíble gracias! Definitivamente usaré la opción de recodificar más a menudo con esos usos.
Re: ¿Cómo puedo escanear el texto en una columna y poner un término clave en otra columna?¿Te importaría explicar qué significan el "2" y el "3"? Sus fórmulas funcionaron a la perfección, pero la explicación que da JMP me supera en lo que respecta al contexto de la fórmula y quiero asegurarme de que puedo enseñarle al resto de mi equipo cómo usar esto correctamente.
Re: ¿Cómo puedo escanear el texto en una columna y poner un término clave en otra columna?Digamos que tenemos una cadena:
mystr = "my,name,is,starfruitbob"
word( , , )
En mi opinión, es mejor aprender qué hace cada uno de estos ligeramente fuera de servicio:
- : podría ser una variable de cadena o una columna, por ejemplo. Esta es la entrada. Debe ser tipo de carácter.
- : "¡encadena cosas aquí!" <-- ponga todos los delimitadores que desee aquí. CADA de ellos, individualmente, se usará como delimitador, ¡incluso si coloca un espacio allí!
- : dependiendo de cómo esté delimitando su entrada, se separará en diferentes "fragmentos". El número es qué "trozo" quieres devolver.
Veamos un ejemplo:
mystr = "my,name,is,starfruitbob";
// Note where the commas are in the variable above
print( word( 1, mystr, "," ) ); // Returns: my
print( word( 3, mystr, "," ) ); // Returns: is
// If the delimiter is changed...
print( word( 1, mystr, "s" ) ); // Returns: my,name,i
// This is because it will return the first characters BEFORE the new delimiter "s"
print( word( 2, mystr, "s" ) ); // Returns: ,
// There's only a single comma between the two "s" delimiters, and is the second "chunk" of the input
¿Esto ayuda? @BunnyBoi12
Re: ¿Cómo puedo escanear el texto en una columna y poner un término clave en otra columna?Creo que sí. entonces si lo hiciste
imprimir (palabra (3, mystr, "s")); devolvería "tarfruitbob"?
Re: ¿Cómo puedo escanear el texto en una columna y poner un término clave en otra columna?Exactamente. 
Re: ¿Cómo puedo escanear el texto en una columna y poner un término clave en otra columna?Eres un hombre increíble, espero que tengas un día fantástico.