将单元格(在 JMP 表中)链接到脚本?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我有一个 JMP 脚本,它生成一个表(分析数据),第一列中有测试名称。
我想知道是否可以将每个测试名称链接到一个脚本,然后生成一系列图表。
有谁知道这是否可能?
谢谢,
奥利维亚
回复:将单元格(在 JMP 表中)链接到脚本?我真的很喜欢实施这个想法。如果我的脚本可以处理选择的多行(例如某些组合图),是否有办法在触发脚本之前等待所有行被选择(例如按住 cntrl 键时)?
例如,如果我想选择第 1,3,5 行...目前我必须选择第 1 行,它会立即触发脚本,然后关闭脚本生成的窗口,然后选择第 3 行(按住 cntrl 键),它立即触发脚本,然后关闭从脚本生成的窗口(组合 1 和 3),然后选择第 5 行(按住 cntrl 键)...最终触发组合 1、3 的脚本,和 5. 是否可以选择 1、3 和 5...然后触发脚本?
回复:将单元格(在 JMP 表中)链接到脚本?谢谢,这真的很有帮助! 我终于设法让它工作了
回复:将单元格(在 JMP 表中)链接到脚本?下面的脚本适用于具有公式列的表,该表具有从行制作图形的脚本。
选择一行时,将所选行的几个列的内容物进行了,将其转移到子集表中,以便可以用覆盖图将其绘制。 公式列中的原始脚本一开始看起来有很大不同,它包含在表格脚本下方。
(将表格脚本复制到脚本窗口并运行脚本)
新表(“结果表”,
添加行(5),
新列(“分析”,
特点,
标称,
设置值({“ANOVA”、“Apple”、“Bannana”、“Orange”、“Peach”})
),
新列(“结果 1”,
数字,
连续的,
格式(“最佳”,12),
公式(随机均匀())
),
新列(“结果 2”,
数字,
连续的,
格式(“”,9),
公式(随机均匀())
),
新列(“结果 3”,
数字,
连续的,
格式(“最佳”,12),
公式(随机均匀())
),
新列(“结果 4”,
数字,
连续的,
格式(“最佳”,12),
公式(随机均匀()),
设置选定
),
新列(“结果 5”,
数字,
连续的,
格式(“最佳”,12),
公式(随机均匀())
),
新列(“结果 6”,
数字,
连续的,
格式(“最佳”,12),
公式(随机均匀())
),
新列(“结果 7”,
数字,
连续的,
格式(“最佳”,12),
公式(随机均匀())
),
新列(“结果 8”,
数字,
连续的,
格式(“最佳”,12),
公式(随机均匀())
),
新列(“结果 9”,
数字,
连续的,
格式(“最佳”,12),
公式(随机均匀())
),
New Column("用公式制作图表的列",
数字,
连续的,
格式(“最佳”,12),
公式(
如果(选定(行状态()),
评估(
解析(
名称默认为此处(1);
清除符号(1);
dt0 = 当前数据表();
rn = dt0 << 获取选定的行;
tn = dt0:分析[rn];
dt1 = 数据表(“结果表”)<<
子集(
输出表(tn[1]),
选定的列(0),
选定的行(0),
行数(rn)
);
dt2 = dt1 << 列(
:结果 1,
:结果 2,
:结果 3,
:结果 4,
:结果 5,
:结果 6,
:结果 7,
:结果 8,
:结果 9
)`;
图 1 = Expr(
dt2 << 叠加图(
Y(列(2)),
分离轴(1),
通过缺失连接(1)
)
);
journgraph1 = Eval(graph1)<<获取日志;
New Window("报告窗口" || tn[1],
文本框(“图表” || tn[1]),
日记框(journgraph1)
);
关闭(dt1,不保存);
关闭(dt2,不保存);
)
)
)
)
),
设置行状态( [0, 0, 0, 0, 1] )
)
这是粘贴到公式列的脚本
( 1 ) ;
() ;
(已选中(行状态() )
(
(
( 1 ) ;
( 1 ) ;
=当前数据表() ;
= dt0 <<获取选定的行;
= dt0 :分析[ rn ] ;
=数据表( “结果表” ) <<子集(
1 ] ) ,
0 ) ,
0 ) ,
//,无形的
;
= dt1 <<转置(
:结果 1 ,
:结果 2 ,
:结果 3 ,
:结果 4 ,
:结果 5 ,
:结果 6 ,
:结果 7 ,
:结果 8 ,
:结果 9 ,
:第 11 栏
,
:分析[ rn ] ) , //这不会在公式中翻译
1 ] || “用于图表” ) //,无形的
;
=表达式( dt2 <<叠加图(是(柱子( 2 ) ) ,分离轴( 1 ) ,通过缺失连接( 1 ) )) ;
=评估(图1 ) <<获取日志;
( “报告窗口” ||吨[ 1 ] ,文本框( “图表” ||吨[ 1 ]) ,轴箱(日记1 )) ;
( dt1 ,没有保存) ;
( dt2 ,没有保存) ;
//解析结束
//评估结束
; //如果结束
回复:将单元格(在 JMP 表中)链接到脚本?谢谢
我在将所有这些添加到我的脚本时遇到问题。
我一直在尝试做的是获取表格,然后在列上添加
"已选中(行状态(排())) ,名称=:测试名称[(当前数据表() <<获取选定的行)[ 1 ]] ;
包括( “C:/Users/..../Tests/” ||评估(解析( :测试名称)) || “.jsl” ) ; 1 , 0 ) ;"
这里的“测试”是我的第二个脚本文件夹(当用户单击表格中的一行时将使用该文件夹)。
我的第一个问题是我找不到解决方法,因为引号引起了问题,第二个问题是我在这里所做的都是我希望与我一起工作的其他人成为的工具的一部分能够使用。 是否有可能看到我现在有第二个脚本正在通过其文件路径访问(该脚本在我的桌面上)?
再次感谢您的帮助
奥利维亚
回复:将单元格(在 JMP 表中)链接到脚本?首先,检查路径字符串。 第一个参数应该只包含脚本目录的路径,因此以 /(斜杠)结尾。
要将选定的 TestName 传递给变量,您需要更加明确:
名称=:测试名称[(当前数据表() <<获取选定的行)[ 1 ]]
此代码可以通过列公式(参见下面的示例)或在调用的脚本中运行。
如果(已选中(行状态(排())) ,名称=:测试名称[(当前数据表() <<获取选定的行)[ 1 ]] ;包括( “C:/Users/..../your_script_folder/” ||评估(解析( :测试名称)) || “.jsl” ) ; 1 , 0 ) ;
回复:将单元格(在 JMP 表中)链接到脚本?
是的,这正是我想要做的。
我遇到的问题是我需要将该测试名称恢复到 JMP 脚本中,以便我可以将它发送到 R 以让我的函数完成它的工作......
我试过这个:
在我的表格的另一列中:
If(Selected(Row State(Row())), Include("C:/Users/....jsl" || Eval(Parse(:TestName)) || ".jsl"); 1, 0)
然后在脚本页面中:
tname = TestName << 获取文本;
rconn << 发送(tname,R 名称(“tname”));
我显然做错了什么,因为它不起作用......
回复:将单元格(在 JMP 表中)链接到脚本?如果您的意思是通过选择表中的一行来触发脚本操作,我建议您看一下这个演示在 JMP 文件交换中。 可以通过使用 Ian Cox 在该演示中使用的技巧选择一行来调用 jsl 能够执行的任何类型的操作。
在他的示例中,脚本实际上是表格单元格中的字符串,但应该可以调用表格脚本,或者为什么不使用 Include() 函数调用独立脚本。
例如,在隐藏列中尝试下面的列公式,以运行与字符列“testname”中的单元格内容完全命名的脚本。
如果(已选中(行状态(排())) ,包括( “你的路” ||评估( :测试名称) || “.jsl” ) ; 1 , 0 )
如果第三行中的testname是“ ANOVA”,则在选择第三行(手动和脚本)时,将运行使用路径“您的路径”的目录中的脚本Anova.jsl。