Solución de problemas Error al ordenar columnas con el comando Sort() y exclusión de los duplicados menos recientes¡Hola!
He estado tratando de crear un script que grafique un parámetro de varias muestras de varias tablas ahora. Las muestras se nombran de tal manera que es XX-AA, donde XX es el ID/nombre de la muestra y AA es la marca de tiempo de la muestra (día 1, 2, 3, etc.). Pido disculpas si estoy haciendo tantas preguntas, todavía soy bastante nuevo en la programación en JSL.
Fusioné mis tablas y luego quise ordenar mi tabla por la columna "Fecha y hora", que tiene el formato am/d/yh:m:s. El objetivo es eliminar los duplicados de las muestras, conservando solo los duplicados más recientes, mientras que los demás duplicados se ocultan y excluyen. A partir de la fusión de las tablas, mi secuencia de comandos se parece a lo siguiente:
dtMerged=dt1<<Concatenate(dt2);
dtmerged<<Sort( By(:Sample ID), Order(Ascending));
dtmerged<<Sort(By(:Date & Time), Order(Ascending));
dtmerged<<Select Where(:Sample ID == :Sample ID[Row()+1]);
dtmerged<<hide and exclude;
Por alguna razón, parece que la clasificación por la columna "Fecha y hora" no ocurre y, como resultado, no estoy seguro de si mi selección de fila realmente funciona correctamente. ¿Ese método de selección ocultaría y excluiría los duplicados donde una entrada de datos tiene más de 1 duplicado? Siento que la razón por la cual la ordenación no funcionará es porque el nombre de mi columna tiene el símbolo "&".
¡Agradezco mucho su ayuda!
Re: Resolución de problemas Fallo al ordenar columnas con el comando Sort() y exclusión del duplicado menos reciente¡Muchas gracias Jim! Fue muy tonto de mi parte no tener el registro abierto para ver que eso ocurría... Me siento como un idiota por no hacer eso.
Ahora que todo está realmente ordenado correctamente, puedo continuar con el siguiente paso, que consiste en excluir los datos duplicados. Mi objetivo era eliminar las iteraciones anteriores de los duplicados, dejando solo la entrada más reciente de la muestra. Digamos, por ejemplo, que tengo 2 muestras, ambas etiquetadas como AA-02 a las 5 a. m., mientras que la otra se tomó a las 7 a. m. del mismo día (que se registra en la columna "Hora y fecha" de la tabla). Quiero que la tabla excluya la entrada de las 5 a. m., pero mantenga la entrada de las 7 a. m.
Alternativamente, lo mismo podría ocurrir con 3 muestras, digamos FJ-01 con 3 iteraciones: una tomada a las 5 a. m., otra a las 7 a. m. y otra a las 10 a. m. Una vez más, el objetivo es mantener únicamente la entrada de las 10 a. m., pero excluir la entrada de las 5 a. m. y las 7 a. m. Traté de hacer un script JSL ordenando primero la tabla por ID de muestra, luego por Fecha y hora, luego usando el comando Seleccionar dónde como se ve a continuación:
MergedTable<MergedTable<MergedTable<MergedTable<<hide and exclude;
Sin embargo, no se produce ninguna selección y, lamentablemente, el registro no parece mencionar ningún error. ¿Hay algún problema con mis criterios de selección que haría que no seleccione?
Re: Resolución de problemas Fallo al ordenar columnas con el comando Sort() y exclusión del duplicado menos recienteEl registro de JMP muestra el siguiente error al ejecutar su código
Name Unresolved: Date in access or evaluation of 'Date' , :Date/*###*/
In the following script, error marked by /*###*/
dtMerged = Current Data Table();
dtmerged << Sort( By( :Sample ID ), Order( Ascending ) );
dtmerged << Sort( By( :Date/*###*/ & Time ), Order( Ascending ) );
El problema al que apunta es que su columna llamada "Fecha y hora" está siendo interpretada por JMP como 2 nombres (fecha y hora) que desea usar en una comparación booleana "&".Lo que debe hacer es usar una función :Name() para aclarar la situación
dtMerged = dt1 << Concatenate( dt2 );
dtmerged << Sort( By( :Sample ID ), Order( Ascending ) );
dtmerged << Sort( By( :Name( "Date & Time" ) ), Order( Ascending ) );
dtmerged << Select Where( :Sample ID == :Sample ID[Row() + 1] );
dtmerged << hide and exclude;
.