Obtenga valores de columna únicos y utilícelos para filtrar / limpiar en una tabla diferenteHola, ¿cuál sería el enfoque para usar, por ejemplo, las claves en una matriz para seleccionar o filtrar filas con las mismas claves, pero en una tabla JMP diferente? Tengo dos mesas. Uno de ellos asigna ID de muestra para pruebas químicas a diferentes configuraciones de factores (temperatura, tiempo, número de estudio, etc.). Obtengo con éxito las ID de muestra en una matriz. (Lo siento, soy un novato total en esto).
smplID = Associative array(:sampleid) << Get Keys;
Ahora quiero usar estas teclas para seleccionar filas en la segunda tabla (donde están mis respuestas), invertir la selección de filas y eliminar las filas.Esta referencia hasta ahora, no me estaba llevando a ninguna parte. Quizás la solución a continuación, como se describe aquí, es más adecuado para empezar ?
Summarize(dt, smpleID = by(:sampleid));
O tal vez Este enfoque ¿es preferible?
dt << Summary (Group ( :sampleid ), Frequ( "None" ), Weight( "None" );
De todos modos, lo que realmente quiero saber es cómo puedo usar cualquiera de estos enfoques para limpiar de manera efectiva una tabla de datos para las filas que no necesito, antes de continuar con el análisis de datos. Supongo que necesito aprender a hacer bucles.
Sí, intento leer la Guía de secuencias de comandos siempre que sea posible. Simplemente no puedo priorizarlo.
ScriptingRe: Obtenga valores de columna únicos y úselos para filtrar / limpiar en una tabla diferentePara obtener valores únicos, todos esos son métodos válidos y sus velocidades dependerán de la cantidad de datos que tenga. Una idea a tener en cuenta es que si desea tomar valores numéricos únicos y usa Resumir, tendrá que volver a convertirlos en numéricos (Resumir los devuelve como cadenas).
Algunas formas diferentes de obtener valores únicos:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
aa_uniq = Associative Array(dt:age) << get keys;
Summarize(dt, summarize_uniq = by(:age));
dt_summary = dt << Summary(Group(:age), Freq("None"), Weight("None"), private);
summary_uniq = Column(dt_summary, 1) << get as matrix;
Close(dt_summary, no save);
Show(aa_uniq, summarize_uniq, summary_uniq);Para seleccionar valores de la tabla de datos, puede usar Contiene con seleccionar dónde. ¡Puede que no sea necesario invertir la selección de filas, ya que puede usarlo! (o No ()) para negar el resultado que obtiene de las funciones. Las esperas están aquí solo por el bien de las demostraciones:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
names_of_interest = {"KATIE", "LILLIE", "JOHN"};
wait(2);
dt << Select Where(Contains(names_of_interest, :name)) << Invert Row Selection << Hide and Exclude(1);// << clear select;
//Remove selections
wait(2);
dt << Clear Row States;
wait(2);
dt << Select Where(!Contains(names_of_interest, :name)) << Hide and Exclude(1);// << clear select;Además, si tiene muchos datos, es posible que esta no sea la forma más eficiente de hacer esto, pero probablemente sea la más simple y comenzaría con ella.
Re: Obtenga valores de columna únicos y úselos para filtrar / limpiar en una tabla diferente¡Gracias, esto me ayudó MUCHO! No estoy seguro de qué significa realmente "muchos datos". La primera tabla que estoy abriendo, hoy contiene alrededor de 400 filas, pero este número seguramente crecerá con la implementación continua de un sistema de gestión de información de laboratorio (LIMS) en nuestra organización. Supongo que con el tiempo habrá miles, quizás hasta diez mil filas. La segunda tabla en la que estoy "limpiando" todas, para mí, las ID de muestra irrelevantes ya tiene unas 50 000 filas.
A partir de ahora, habiendo implementado su solución, estoy trabajando con una serie de ID de muestra. (Aunque siento que mis habilidades son extremadamente limitadas, la creación de scripts todavía se siente extremadamente valiosa y satisfactoria al encontrar una solución, incluso cuando es "arrancada" de la comunidad. Así que muchas gracias de nuevo.)
Re: Obtenga valores de columna únicos y utilícelos para filtrar/limpiar en una tabla diferente¡Estos métodos serán rápidos para esa cantidad de filas!
Hay una solución más que me vino a la mente, primero puede crear una tabla de resumen y luego unirla a la tabla de la que desea eliminar los valores encontrados.
Usando los datos de muestra de JMP Cars.jmp y Cars 1993.jmp como ejemplo. Cars 1993 será uno de los datos con los que filtraremos Cars usando la columna Model.
1. Cree una tabla de resumen de Cars 1993 con el modelo como grupo
2. Una esa nueva tabla de resumen a la tabla Cars con la siguiente configuración:

3. Desde la nueva columna Match Flag, puede ver dos valores: Ambos y Principal. Ambos significa que el modelo se puede encontrar en ambos conjuntos de datos
Creo que puede hacer esto directamente con Cars 1993, pero debe tener cuidado con los duplicados (Drop multiples With Table podría resolver eso, no estoy seguro). Además, en este caso, querrá elegir las columnas que desea conservar, ya que habrá duplicados (al menos con este ejemplo).

Estos dos también se pueden programar con bastante facilidad, ya que JMP puede hacer la mayor parte de las secuencias de comandos.