我刚刚升级到 JMP 13,它使许多自定义脚本停止工作。我已将问题追溯到列表处理 loc 查询结果的方式发生了变化。以下代码过去在 JMP 12 中返回“pear”,但现在返回 {“pear”}。
mylist = {"apple","pear"};
mychoice = "pear";
showchoice = mylist[loc(mylist, mychoice)];我使用 list[loc()] 语法创建 SQL 逗号分隔字符串来执行存储过程。
新的行为虽然出乎意料,但却是合乎逻辑的。遗憾的是 Loc() 仍然不会将列表参数作为查找值 - 这本来是一个有益的结果。您建议如何获得所需的结果:
- 将 Loc() 结果转换为数字?
- 在我的代码中将 showchoice 替换为 showchoice[1] ?
- 其他?
我可以将我的选择列表转换为字符串并去掉 { & } & \!"。这并不总是有效,因为我向用户显示的文本列表并不总是与相应的列表相同为 SQL 请求选择键。
这有点像预测模型的过度拟合。您的代码将根据 JMP 的实际工作方式进行调整,而不是其应有的工作方式。这很好,直到下一个版本:)
我认为Loc()应该采用一个矩阵并返回真实元素(非零)的位置。
Contains(list, item)适用于列表并返回目标项的位置。