故障排除无法使用 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 个样本都在凌晨 5 点标记为 AA-02,而另一个样本是在同一天早上 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;
.