JSL:根據第二列中的匹配字串更改一系列行中的值?我們的資料收集軟體的啟動時間比我們的實驗稍早一些,因此我們希望透過以下方式消除 JMP 資料中的延遲時間:
1. 使用者輸入每個實驗開始的日期時間(可以是同一資料表中不同時間開始的倍數)。 這部分我用列錶框編寫了腳本。
2. 解析日期時間。
3. 根據符合 A 列中的字串識別碼尋找與每個特定實驗相關的行範圍
4. 刪除開始日期時間之前的所有行。
5. 將已用實驗時間(以十進位時間表示)變更為從輸入日期時間開始。
直到#5 為止我都取得了成功,但我不斷收到錯誤訊息。 理想情況下,我只需從經過時間列中的每個單元格中減去每個實驗範圍當前第一行中的數字。 循環在這裡最有意義嗎? 我是否應該為每個實驗經過的時間建立一個新列,然後重新組合? 感謝您的幫助和腳本。
資料混合與清理回覆:JSL:根據第二列中的匹配字串更改一系列行中的值?謝謝,這非常有幫助,我已經設法在我的腳本中完成這項工作,但遇到了另一個障礙。 數據點與我的開始時間並不完全一致,因此我最終的第一個時間點最多相差一分鐘。 我想將第一個時間點拉至 0,而不是現在的 ~0.01。 但是,我在調整時間列中沒有得到任何值。 以下是我提供時間開始的程式碼。
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]);回覆:JSL:根據第二列中的匹配字串更改一系列行中的值?您可能會發現一些感興趣的東西這個線程,但詳細資訊取決於數據的具體格式。