JMP脚本问题<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我是一个尝试学习JMP脚本的新用户。 我有一个非常简单的脚本,但遇到了预期的结果。 可能有人可以给我一个关于我在这里做错的指针。 提前致谢。 (顺便说一句:我正在使用JMP 8.02)
我有一个非常简单的表如下(test1.csv):
| Tool_first | Tool_second | Process_time | Tool_third | GROUP_1 | Real_beta | 基础 |
| 一个 | C | 4/3/2011 0:53 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/3/2011 1:08 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/3/2011 5:27 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/3/2011 6:26 | Ë | AE | 0.0058 | ÿ |
| 一个 | d | 4/3/2011 6:39 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/3/2011 6:49 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 2011年4月3日18:43 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/3/2011 23:42 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/4/2011 5:20 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/4/2011 8:34 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/4/2011 10:43 | Ë | AE | 0.0058 | ÿ |
| 一个 | d | 4/4/2011 11:02 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/4/2011 13:57 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/4/2011 14:28 | Ë | AE | 0.0058 | ÿ |
| 一个 | d | 4/4/2011 16:43 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 2011年4月4日20:01 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/4/2011 20:17 | Ë | AE | 0.0058 | ÿ |
| 一个 | d | 4/4/2011 21:45 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 4/5/2011 18:20 | Ë | AE | 0.0058 | ÿ |
| 一个 | d | 2011年4月5日20:02 | Ë | AE | 0.0058 | ÿ |
| 一个 | C | 2011年4月5日20:35 | Ë | AE | 0.0058 | ÿ |
以下脚本读入.csv文件,并根据一行与其前一行的比较向表中添加两列。 我的脚本如下
Source_Table = Open(“c:\ test1.csv”);
Source_Table << Sort(By(group_1,process_time),order(Ascending),Replace Table);
新栏目(“Inspect_pt”,
式(
如果(行()== 1,1,
(:group_1 [row()]!=:group_1 [row() - 1]),1,
(:group_1 [row()] ==:group_1 [row() - 1]),0)));
新栏目(“tool_Change”,
式(
如果(行()== 1,1,
(:tool_second [row()]!=:tool_second [row() - 1]),1,
(:tool_second [row()] ==:tool_second [row() - 1]),0
)
)
);
show(当前数据表());
/ *尝试输出最后两列的值* /
for(i = 1,i ,:tool_Change ););
结果表没问题,但脚本的最后一行没有在两个新创建的列上返回任何结果。 日志窗口显示索引变为:: i。
输出表:
[缺少图像]
但是日志窗口显示最后两列未正确拉出的结果。 我使用了错误的索引吗?此处的日志窗口输出:
当前数据表:DataTable(“test1”)
我:1
行:1
:Inspect_pt [:: I] :. < - 这是不正确的
:tool_Change [:: I] :. < - 这是不正确的
我:2
行:2
:Inspect_pt [:: I] :.
:tool_Change [:: I] :.
I:3
行:3
:Inspect_pt [:: I] :.
:tool_Change [:: I] :.
我:4
行:4
:Inspect_pt [:: I] :.
:tool_Change [:: I] :.
JMP脚本问题感谢大家提供有价值的信息。 这个论坛很棒。
JMP脚本问题在编写使用早期流程中的值来确定如何继续的脚本时,这一点变得尤为重要(例如 选择Where(:tool_change == 1)以便进行子集化。 通过在这样的代码块的末尾插入“运行公式”行,您可以告诉JMP暂停,评估所有挂起的公式,然后继续执行脚本的其余部分。
我不太熟悉'eval公式'的行为(我通常使用'运行公式' - 只是习惯问题),所以这是推测,但根据具体的过程,我可以看到有利于'的情境差异' eval公式'over'运行公式'(即,您只关心一个公式进行决策,您可以只指示该公式进行评估,以便稍后保存剩余的公式评估)。 这里的差异实际上取决于您需要做多少公式评估以及何时需要完成。
JMP脚本问题你好
在继续下一个命令之前,JMP没有完成一个“命令” - 它读取“新列”命令并开始执行它,但继续读取并执行下一个命令。
这里发生的是'新列'命令没有完成执行(这种类型的命令特别需要一些时间,因为图形必须更新),在JMP使用'show'命令读取最后一行之前,所以没有执行此命令时列中的值。
要么“冲洗”上面的公式,要么将'eval公式'直接放入'new column'命令,例如
新列(“标题”,数字,公式(:X1 *:X2),eval公式);
据我所知,这两种方法具有相同的效果。
BR,Marianne
PS:我不是来自JMP
JMP脚本问题你好HY,
我不确定你为什么需要这个声明 - 我是从JMP技术支持得到的。 也许JMP的某个人可以解释一下?
问候,
彼得
JMP脚本问题谢谢PMroz。 这就是诀窍。 为了我自己的利益,请您详细说明发生了什么以及为什么需要额外的线才能实现这一目标。 再次感谢
JMP脚本问题尝试使用以下语句“刷新”JMP的公式缓冲区:
Source_Table <<运行公式;
在公式定义后添加此行。