引用 JSL 中的列我一直对教程和互联网搜索中缺少多少关于 JSL 的基本信息感到震惊。 我不确定人们如何在不仔细研究大量不必要的附加信息的情况下学习这种语言的基础知识,然后最终还是找不到所需的东西。 我想这就是为什么论坛可以作为资源使用的原因。
我试图简单地引用给定 JSL 中的数据表的列。
dt = Open("filepath.jsl");
col = dt:"Column Title/Name";当我 Write() 时 col 什么都没有显示,这意味着引用没有引用。 该列清楚地填充了数据,它不是空的,我检查了。 犯了愚蠢的错误,但我已经解决了。 说了这么多,我也不知道怎么了。 我认为这是 JSL 中非常基本的事情,但我不断发现这些“JSL 中非常基本的事情”失败了,并且在我可以处理我的代码逻辑时花费宝贵的几分钟到几小时的故障排除。 我倾向于向我的经理投诉我们对这种语言的使用,并建议可能切换到更合乎逻辑且设计良好的编程语言(显然 JSL 是用于统计用途,而不是真正用于编程逻辑),例如 Python。
<叹气>。 感谢您的任何帮助。
脚本回复:引用 JSL 中的列[注意:我之前写过大部分内容@jthi回答并说了很多同样的话。]
首先,如果你还没有读过(至少前几章) JMP 脚本指南( PDF格式,如果愿意)你真的应该。
JMP 是一种脚本语言,而不是一种编程语言。 它与 JMP 的用户界面密切相关,旨在实现 JMP 任务的自动化。 尝试以与您对 Python 或其他不控制用户界面的语言相同的方式来思考它会导致挫败感。
我试图简单地引用给定 JSL 中的数据表的列。
你的问题就是一个例子。 “引用列”的概念很复杂,因为“列”在不同的上下文中可能意味着不同的事物(例如,平台调用、操作列的属性、列公式)。
那么,您在示例中包含什么“col”? 列中包含的数据? 该列的特定行的值?
或者,问的不同? 将“col”设置为您希望包含的任何内容后,您想在哪里使用它? 在平台调用中(例如,Distribution(Y(col)))? 或者别的地方?
回复:引用 JSL 中的列如果我没记错的话,使用 dt:"colname"(与使用 As Column() 相同)将使您直接访问数据表中名为“colname”的列的当前 Row() 的当前值,并引用 dt。 要获得对列的引用,您可以使用 Column(dt, "colname") 作为@蒂埃里_S说。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Column Title/Name",
Character,
"Nominal",
Set Values({"a1", "b2", "c3", "d4", ""})
)
);
For each row(dt,
col = dt:"Column Title/Name";
Show(col);
);
Row() = 1;
col = AsColumn(dt, "Column Title/Name");
Show(col);
col = Column(dt, "Column Title/Name");
Show(col);我绝对不是说 JSL 文档是最好的,但它确实有相当多的材料(以及很棒的社区和电子邮件支持)。 对于初学者来说,这些是很好的来源:
JMP15 - 脚本指南
JMP 帮助
直接来自 JMP 的脚本索引
如果 JMP 帮助或脚本索引中缺少或不清楚的地方,我相当肯定 JMP 会很乐意改进它们。
@Jeff_Perkinson
回复:引用 JSL 中的列正确的语法是: col = Column (dt, "Name")