将单元格(在 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),
公式( 随机 Uniform() ),
设置选定
),
新列(“结果 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 = 表达式(
dt2 << 叠加图(
Y( 列( 2 ) ),
分离轴( 1 ),
连接缺失( 1 )
)
);
journgraph1 = Eval( graph1 ) << 获取日志;
New Window( "报告窗口 " || tn[1],
文本框(“图表” || tn[1] ),
日记盒(jourgraph1)
);
关闭(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:/用户/..../测试/” ||评估(解析( :测试名称)) || “.jsl” ) ; 1 , 0 ) ;”
这里的“测试”是我的第二个脚本文件夹(当用户单击表中的一行时将使用的文件夹)。
我的第一个问题是,我找不到一种方法来做到这一点,因为引号引起了问题,第二个问题是,我在这里所做的都是一个工具的一部分,我希望与我一起工作的其他人也能使用该工具。能够使用。 看到我现在有第二个脚本可以通过其文件路径访问(该脚本位于我的桌面上),这是否可能?
再次感谢您的帮助
奥利维亚
回复:将单元格(在 JMP 表中)链接到脚本?首先,检查路径字符串。 第一个参数应仅包含脚本目录的路径,因此以 /(斜杠)结尾。
要将选定的 TestName 传递给变量,您需要更明确:
名称=:测试名称[(当前数据表() <<获取选定的行)[ 1 ]]
此代码可以通过列公式(参见下面的示例)或在调用的脚本中运行。
如果(已选择(行状态(排())) ,名称=:测试名称[(当前数据表() <<获取选定的行)[ 1 ]] ;包括( “C:/用户/..../your_script_folder/” ||评估(解析( :测试名称)) || “.jsl” ) ; 1 , 0 ) ;
回复:将单元格(在 JMP 表中)链接到脚本?
是的,这正是我想做的。
我遇到的问题是我需要将该测试名称返回到 JMP 脚本中,以便我可以将其发送到 R 以便我的函数完成其工作...
我试过这个:
在我的表的附加列中:
If(Selected(行状态(Row())), Include("C:/Users/....jsl" || Eval(Parse(:TestName)) || ".jsl"); 1, 0)
然后在脚本页面中:
tname = 测试名称 << 获取文本;
rconn << 发送(tname,R 名称("tname"));
我显然做错了什么,因为它不起作用......
回复:将单元格(在 JMP 表中)链接到脚本?如果您的意思是通过选择表中的一行来触发脚本操作,我建议您看一下这个演示在 JMP 文件交换中。 jsl 能够执行的任何类型的操作都可以通过使用 Ian Cox 在该演示中使用的技巧选择一行来调用。
在他的示例中,脚本实际上是表单元格中的字符串,但应该可以调用表脚本,或者为什么不使用 Include() 函数的独立脚本。
例如,尝试在隐藏列中使用下面的列公式来运行与字符列“testname”中的单元格内容完全相同的脚本。
如果(已选择(行状态(排())) ,包括( “你的路径” ||评估( :测试名称) || “.jsl” ) ; 1 , 0 )
如果第三行中的 testname 是“ANOVA”,则在选择第三行时,将运行保存在路径为“yourpath”的目录中的脚本 ANOVA.jsl(手动,但我猜也可以通过脚本运行)。