Eliminar una fila en función de la presencia de palabras específicas en una celdaHola a todos. Creo que esta puede ser una situación común para muchos que trabajan con archivos de datos de varios instrumentos. Mis conjuntos de datos se derivan de la unión de múltiples archivos de salida de un instrumento específico. Además de las filas de datos útiles, hay una serie de filas en la parte superior de cada archivo de salida que especifican la receta, el archivo y otros; por lo general, esta información está en la columna 1. Para procesar los datos, no necesito esa información, por lo que quiero eliminar las filas innecesarias que contienen las palabras anteriores Receta, Archivo, etc. en las celdas de la Columna 1. Tenga en cuenta que puede haber otras palabras en las mismas celdas, por ejemplo: "Nombre de receta de obleas" o "Archivo de grupo de etapas", etc. Probé varias permutaciones en lo siguiente, pero siempre aparece un mensaje de error que dice: "Enviar espera objetos que se puedan ejecutar en scripts en el acceso de evaluación de "Enviar", etc. ¡Muchas gracias de antemano!
dt_new2 << obtener filas donde (contiene (:Columna 1, "Receta"));
dt_new2 << eliminar filas;
Esperar(1);
dt_new2 << obtener filas donde (contiene (:Columna 1, "Archivo"));
dt_new2 << eliminar filas;
Espera(1)
Automatización y scriptingCombinación y limpieza de datosRe: Eliminar una fila en función de la presencia de palabras específicas en una celdaPrueba esto
Names Default To Here( 1 );
dt_new2 = Current Data Table();
dt_new2 << select where( Contains( :Column 1, "Recipe" ) );
dt_new2 << delete rows;
Wait( 0 );
dt_new2 << select where( Contains( :Column 1, "File" ) );
dt_new2 << delete rows;
El índice de secuencias de comandos
Ayuda=>Índice de scripts
Es una gran fuente de sintaxis de declaraciones y ejemplos.
Además, te aconsejo que te tomes el tiempo de leer la Guía de secuencias de comandos que se encuentra en la Ayuda de JMP.
Re: Eliminar una fila en función de la presencia de palabras específicas en una celdaSi desea utilizar simplemente << Eliminar filas sin ningún argumento, debe seleccionar filas (como lo mostró Jim). Otra opción es recopilar sus filas en una variable y usarla (mi método preferido, ya que omite la selección de filas "innecesaria", pero la selección es más visual si desea depurar)
Names Default To Here(1);
rows_to_delete = dt_new2 << get rows where(Contains(:Column 1, "Recipe"));
dt_new2 << delete rows(rows_to_delete);
rows_to_delete = dt_new2 << get rows where(Contains(:Column 1, "File"));
dt_new2 << delete rows(rows_to_delete);
Este comportamiento no está documentado en el índice de secuencias de comandos.

pero se puede encontrar en la Referencia de sintaxis JSL Tabla de datos Mensajes (jmp.com) y Guía de secuencias de comandos Eliminar filas (jmp.com) (busque Eliminar filas desde el Editor de secuencias de comandos y presione Ayuda del tema)
Re: Eliminar una fila en función de la presencia de palabras específicas en una celdaHola, txnelson, ¡gracias por tu respuesta! Como dije, probé varios comandos relacionados, incluido select where + contains, pero sin la declaración Names default to here at the top, ese enfoque no funcionó anteriormente. La rutina me funciona ahora, muchas gracias por el aporte. ¡Saludos!
Re: Eliminar una fila en función de la presencia de palabras específicas en una celdaHola jthi, gracias por tu respuesta, te lo agradezco. Siempre me recuerdo a mí misma que debo confiar más en las variables, pero lamentablemente, solo lo hago cuando no hay otras opciones. Una gran sugerencia, estoy segura de que será útil para muchas otras personas. ¡Saludos!
Re: Eliminar una fila en función de la presencia de palabras específicas en una celdaTambién puedes hacerlo sin variables, pero no lo recomendaría porque es mucho más difícil de leer y más difícil de depurar si hay algún problema.
Names Default To Here(1);
dt_new2 << delete rows(dt_new2 << get rows where(Contains(:Column 1, "Recipe")));
dt_new2 << delete rows(dt_new2 << get rows where(Contains(:Column 1, "File")));