故障排除無法使用 Sort() 命令對列進行排序,並排除最近的重複項你好!
我一直在嘗試創建一個腳本來繪製來自多個表的多個樣本的參數。 樣本的命名方式為 XX-AA,其中 XX 是樣本的 ID/名稱,AA 是樣本的時間戳(第 1、2、3 天等)。 如果我問了這麼多問題,我深表歉意,我對使用 JSL 編程還是很陌生。
我合併了我的表,然後想按“日期和時間”列對我的表進行排序,該列的格式為 am/d/yh:m:s。 目標是刪除樣本的重複項,只保留最近的重複項,而隱藏和排除其他重複項。 從表格的合併來看,我的腳本如下所示:
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;
無論出於何種原因,似乎都沒有按“日期和時間”列進行排序,因此,我不確定我的行選擇是否真的正常工作。 該選擇方法是否會隱藏並排除數據條目超過 1 個重複項的重複項? 我覺得排序不行的原因是因為我的列名里面有“&”符號。
非常感謝您的幫助!
回复:故障排除無法使用 Sort() 命令對列進行排序,並排除最近的重複項非常感謝吉姆! 不打開日誌就看到發生的事情,這對我來說是非常愚蠢的……我覺得自己像個白痴一樣不這樣做。
現在所有內容實際上都已正確排序,我可以繼續下一步,即排除重複數據。 我的目標是刪除重複項的先前迭代,只留下樣本的最新條目。 比方說,我有 2 個樣本都標記為 AA-02,時間為凌晨 5 點,而另一個樣本是在同一天早上 7 點採集的(記錄在表的“時間和日期”列中)。 我希望表格排除 5AM 條目,但保留 7AM 條目。
或者,同樣的情況也可能發生在 3 個樣本上,假設 FJ-01 有 3 個迭代:一個在早上 5 點拍攝,一個在早上 7 點拍攝,一個在上午 10 點拍攝。 同樣,目標是僅保留 10AM 條目,但排除 5AM 和 7AM 條目。 我嘗試通過首先按示例 ID 對錶進行排序,然後按日期和時間對錶進行排序,然後使用 Select Where 命令來製作 JSL 腳本,如下所示:
MergedTable<MergedTable<MergedTable<MergedTable<<hide and exclude;
但是,沒有選擇發生,不幸的是日誌似乎沒有提到任何錯誤。 我的選擇標準有什麼問題會導致它不被選擇嗎?
回复:故障排除無法使用 Sort() 命令對列進行排序,並排除最近的重複項JMP 日誌在運行您的代碼時顯示以下錯誤
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 ) );
它指向的問題是,JMP 將名為“日期和時間”的列解釋為您想在布爾比較“&”中使用的 2 個名稱(日期和時間)。您需要做的是使用 :Name() 函數來澄清情況
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;
.