JSL: modifica i valori in un intervallo di righe in base alle stringhe corrispondenti in una seconda colonna?Il nostro software di raccolta dei dati inizia poco prima rispetto ai nostri esperimenti, quindi vorremmo eliminare il tempo di ritardo nei dati JMP nel seguente modo:
1. L'utente immette la data-ora di inizio di ciascun esperimento (possono essere multipli che iniziano in momenti diversi nella stessa tabella dati). Questa parte ho script con una casella di riepilogo.
2. Parse date-time.
3. Trova l'intervallo di righe correlate a ciascun esperimento specifico in base alla corrispondenza dell'identificatore di stringa nella colonna A
4. Rimuovi tutte le righe prima di iniziare la data-ora.
5. Modificare il tempo di esperimento trascorso (in tempo decimale) per iniziare alla data e ora di input.
Ho avuto successo in tutto fino al n. 5, dove continuo a ricevere messaggi di errore. Idealmente, dovrei semplicemente sottrarre il numero nella prima riga dell'intervallo per ogni esperimento da ciascuna cella nella colonna del tempo trascorso. Un loop ha più senso qui? Dovrei semplicemente creare una nuova colonna per ogni esperimento per il tempo trascorso e poi ricombinare? Grazie per qualsiasi aiuto e script.
Ri: JSL: modifica i valori in un intervallo di righe in base alle stringhe corrispondenti in una seconda colonna?Grazie, è stato molto utile, sono riuscito a farlo funzionare nella mia sceneggiatura ma sono arrivato a un altro posto di blocco. I punti dati non si allineano perfettamente con la mia ora di inizio, quindi finisco con il mio primo time point che è stato disattivato fino a un minuto. Mi piacerebbe tirare il primo punto temporale a 0 invece di ~ 0.01 al momento. Tuttavia, non ricevo alcun valore nella colonna temporale corretta. Quello che segue è il mio codice in cui il timestart è suuplied.
t1 = dt << Get Rows Where (:BatchID == "ABCD");
t2 = dt << Get Rows Where (:BatchID == "EFGH");
dt << New Column("TimeStart", Number);
:TimeStart[t1] = timestart1;
:TimeStart[t2] = timestart2;
dt << New Column("NewEFT", Number, Formula((:Datetime-:TimeStart)/3600));
dt << Select Where(:NewEFT< 0);
dt << delete rows;
dt << Delete Columns("EFT_hrs");
dt << New Column("Adjusted EFT", Number);
:Adjusted EFT[t1] = :NewEFT - min(:NewEFT[t1]);
:Adjusted EFT[t2] = :NewEFT - min(:NewEFT[t2]);Ri: JSL: modifica i valori in un intervallo di righe in base alle stringhe corrispondenti in una seconda colonna?Potresti trovare qualcosa di interessante in questo thread , sebbene i dettagli dipenderanno dal formato specifico dei tuoi dati.