Risoluzione dei problemi Impossibile ordinare le colonne con il comando Sort () e escludendo i duplicati meno recentiCiao!
Ho cercato di creare uno script che grafici un parametro di più campioni da più tabelle ora. I campioni sono denominati in modo che sia XX-AA, dove XX è l'ID / nome del campione e AA è il timestamp del campione (giorno 1,2,3 e così via). Mi scuso se sto facendo tante domande, sono ancora abbastanza nuovo alla programmazione in JSL.
Ho unito le mie tabelle e ho voluto ordinare la mia tabella con la colonna "Date & Time", che è formata nel formato am / d / yh: m: s. L'obiettivo è rimuovere duplicati di campioni, mantenendo solo i duplicati più recenti, mentre gli altri duplicati sono nascosti ed esclusi. Dall'unione delle tabelle, il mio script ha il seguente aspetto:
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;
Per qualche ragione, sembra che l'ordinamento dalla colonna "Data e ora" non si verifica, e come risultato, non sono sicuro se la mia selezione di riga effettivamente funziona correttamente. Questo metodo di selezione nasconderebbe ed escluderebbe i duplicati in cui un enry di dati ha più di 1 duplicato? Sento che il motivo per cui l'ordinamento non funziona è perché il nome della mia colonna ha il simbolo "&" in esso.
Apprezzo molto il tuo aiuto!
Ri: Risoluzione dei problemi Impossibile ordinare le colonne con il comando Sort () e escludendo il duplicato meno recenteGrazie mille Jim! E 'stato molto sciocco da parte mia non avere il registro aperto per vedere che si sta verificando ... Mi sento un idiota per non farlo.
Ora che tutto è effettivamente ordinato correttamente, posso procedere al passaggio successivo, che esclude duplicati di dati. Il mio obiettivo era rimuovere le iterazioni precedenti dei duplicati, lasciando solo la voce più recente del campione. Supponiamo, ad esempio, che io abbia 2 campioni entrambi etichettati come AA-02 alle 5:00, mentre l'altro è stato preso alle 7:00 dello stesso giorno (che è registrato nella colonna "Ora e data" della tabella). Voglio che la tabella escluda la voce 5AM, ma mantieni la voce 7AM.
In alternativa, lo stesso potrebbe accadere con 3 campioni, ad esempio FJ-01 con 3 iterazioni: uno preso alle 5 del mattino, uno alle 7:00 e l'altro alle 10 del mattino. Anche in questo caso, l'obiettivo è l'unico mantenere la voce 10AM, ma per escludere la voce 5AM e 7AM. Ho provato a creare uno script JSL ordinando prima la tabella con l'ID campione, poi con Data e ora, quindi utilizzando il comando Seleziona dove mostrato sotto:
MergedTable<MergedTable<MergedTable<MergedTable<<hide and exclude;
Tuttavia, non si verifica alcuna selezione e purtroppo il log non sembra menzionare errori. C'è qualcosa che non va con i miei criteri di selezione che non lo farebbe selezionare?
Ri: Risoluzione dei problemi Impossibile ordinare le colonne con il comando Sort () e escludendo il duplicato meno recenteIl registro JMP mostra il seguente errore durante l'esecuzione del codice
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 ) );
Il problema a cui punta è che la colonna denominata "Data e ora" viene interpretata da JMP come 2 nomi (Data e Ora) che si desidera utilizzare in un confronto booleano "&". Quello che devi fare è usare una funzione Name () per chiarire la situazione
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;
.