好的,因此我已经开始熟悉JMP,并成功地完成了我的第一个脚本以从数据库中提取,重新排列和格式化数据表的脚本。 可以正常工作并节省时间。 当我开发了该脚本并复制了跳到JMP脚本编制在我的腿上,我自然对理解脚本很感兴趣。 因此,问题来了。
想一想需要大量不同测量值的制造过程。 数据库在一列中包含所有测试方法,而另一列中包含所有测试结果。 为了得到我想要的东西,我需要分割这张桌子。 但是,由于数据库中的很多内容都来自旧版Excel文件,因此,由于条目较早且错误,因此需要对包含测试名称的列进行一些重新编码。 为了获得那段(重新)代码,我通过“列”菜单中的“重新编码...”进行了操作,这是脚本中我无法理解的唯一一段代码。 (这通常是一个非常基本的脚本。)
在下面发布的示例中,大写字母和数字反映了所使用的实际测试方法名称的变体。 例如,A是一种测试(例如pH测试),B是另一种测试(例如粘度)。 A(1),A(2),... A(n)将全部重新编码为A,然后B(1),... B(n)到B,依此类推。 现在,该软件究竟如何从这段代码中将哪些变量归为一类呢? 我检查了脚本编制指南和脚本编制索引,但仍然不了解。 _rcOrig和_rcNow是什么意思? 脚本(即行和列)的排列方式与我完整脚本的副本中的排列方式完全相同。
感谢您的回答。
dt << Recode Column(
dt:TestName,
{Map Value(
_rcOrig,
{"A(1)", "A(2)",
"A(3)", "A(4)",
"A(5)", "A(6)", "B(1)",
"B(2)", "C(1)", "C(2)",
"C(3)", "C(4)", "D(1)", "D(2)", "E(1)",
"E(2)", "F(1)", "F(2)", "G(1)", "G(2)",
"H(1)", "H(2)", "I(1)", "I(2)",
"I(3)", "I(4)", "J(1)", "J(2)", "K(1)",
"K(2)", "L(1)", "L(2)",
"M(1)", "M(2)", "M(3)",
"M(4)"},
Unmatched( _rcNow )
)},
Target Column( col1 )
);
dt << End Data Update;我在数据表中创建了一个新列,其中包含您提供的JSL中的测试值。

然后,我打开“重新编码”对话框并进行了重新编码更改。

然后我去了红色三角形并选择了
脚本=>保存到脚本窗口
下面是它给我的。
Names Default To Here( 1 );
dt = Data Table( "Big Class" );
dt << Begin Data Update;
col1 = dt << New Column( dt:test );
col1 << Set Name( "test 2" );
dt << Move Selected Columns( {col1}, after( dt:test ) );
dt << Recode Column(
dt:test,
{Map Value(
_rcOrig,
{"A(1)", "A", "A(2)", "A", "A(3)", "A", "A(4)", "A", "A(5)", "A", "A(6)",
"A", "B(1)", "B", "B(2)", "B", "C(1)", "C", "C(2)", "C", "C(3)", "C", "C(4)",
"C", "D(1)", "D", "D(2)", "D", "E(1)", "E", "E(2)", "E", "F(1)", "F", "F(2)",
"F", "G(1)", "G", "G(2)", "G", "H(1)", "H", "H(2)", "H", "I(1)", "I", "I(2)",
"I", "I(3)", "I", "I(4)", "I", "J(1)", "J", "J(2)", "J", "K(1)", "K", "K(2)",
"K", "L(1)", "L", "L(2)", "L", "M(1)", "M", "M(2)", "M", "M(3)", "M", "M(4)",
"M"},
Unmatched( _rcNow )
)},
Target Column( col1 )
);
dt << End Data Update;
在示例中,您可以看到如何为每个值/结果对设置值
你好,
如果它始终是一个字母,则您可能想要创建一个简单的公式,如下所示:
dt << New Column( "Test_Name", formula( Left(:TestName, 1)));