好的,因此我已經開始熟悉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)));