在 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 会很乐意对其进行改进。
@杰夫·珀金森
回复:在 JSL 中引用列正确的语法是:col = Column(dt,“名称”)