如何制作 JMP 脚本来为用户输入创建一个新窗口,根据另一个列将值分配给一个列你好呀,
我陷入了 JMP 脚本的特定部分,希望从不同的角度获得一些帮助。
我有一个看起来像这样的数据集,但有更多类别,每个类别都有更长的名称。

我想根据给定的列创建带有数值的另一列。 该产品需要完全自动化,有一个弹出窗口,列出每个类别,并带有数字编辑框,用户可以在其中输入与类别相对应的数值。 例如:
弹出窗口框:新窗口,所有提示都在弹出窗口框中。
输入A对应的值: ___1___ 输入B对应的值: ___2___ 输入C对应的值: ___3___ 输入D对应的值: ___4___ 输入E对应的值: ___5___ |
生成的数据表应如下所示:

下面是我现在拥有的 JMP 脚本。 我还将 JMP 文件上传到了这篇文章。 我需要帮助的是红色文字以下。 我在根据用户输入并对应于列表中的第 i 个唯一类别在 for 循环中分配第 i 个值时遇到问题,唯一字符,到初始化数字列表中的第 i 个位置,编号列表,稍后将在下一个 for 循环中使用它来创建第 2 列(在下面的 JMP 脚本末尾)。
dt = Current Data Table();
//get the unique character variable list
Names Default To Here( 1 );
col9 = Column(dt, "Column 1");
unique_char = Associative Array(col9) << get keys; // unique_char = {"A", "B", "C", "D", "E"}
//get n items in character variable list
nuniquechar = N Items(unique_char); //will be 5, if categories are A, B, C, D, E
//initalize number list
num_list = {};
//create new window to create multiple number edit boxes
nw = New Window( "Set Values",
<<MODAL> // HELP:
// name a numeric variable on each iteration that will be the holder of a numeric edit box
// put the resulting ith entry into the num_list
num_list[i] = number edit box(),
// number box default is null/missing. If no input, place a missing value in the num_list
)
);<BR /><BR />// TO DO: <BR />// Create new column assigning the num_list values to <BR />// the corresponding rows based the unique character value. <BR />// Pseudo-code: <BR />// for(i in 1:nuniquechar)<BR />// if :column 1 = unique_char[i], num_list[i]<BR />//<BR />//</MODAL>由此产生的结果将是使用以下条件逻辑根据第 1 列的类别创建第 2 列的自动化且用户友好的版本。

质量和工艺工程回复:如何制作 JMP 脚本来为用户输入创建一个新窗口,根据另一个列将值分配给一个列当然,这是我在陷入困境之前就想做的事情。 但我希望为那些不太了解 JMP 界面的人提供一个应用程序。
回复:如何制作 JMP 脚本来为用户输入创建一个新窗口,根据另一个列将值分配给一个列您是否考虑过列 > 重新编码平台?可能是一种很好的低技术含量的方式来做你想做的事。
回复:如何制作 JMP 脚本来为用户输入创建一个新窗口,根据另一个列将值分配给一个列这是我整理的一个小脚本——您可能不需要一个可选的选择器来使新列成为数字(这里我只是将其保留为字符)。
您必须输入新的列名称,并且如果当前数据表中存在新名称,则不会运行检查(我知道 JMP 不会覆盖列,但它仍然可能令人困惑)。
/* recode */
self = New Namespace();
Show( self << Get Name );
self:table = Current Data Table();
self:column = Insert( {}, self:table << Get Selected Columns );
self:column = self:column[1] << Get Name;
Show( self:column );
self:values = Associative Array( Column( self:table, self:column ) ) << Get Keys;
self:string list = {};
For( i = 1, i <= N Items( self:values ), i++,
Insert Into( self:string list, Char( i ) )
);
Eval( Eval Expr(
win = New Window( "Set Values",
<<MODAL></MODAL>回复:如何制作 JMP 脚本来为用户输入创建一个新窗口,根据另一个列将值分配给一个列我使用 << Set Function 和数字编辑框来获取 unique_aa 关联数组的值。 然后在关闭模式窗口后使用该关联数组构建所需的公式列。
Names Default To Here(1);
dt = Current Data Table();
//get the unique character variable list
col9 = Column(dt, "Column 1");
unique_char = Associative Array(col9) << get keys;
nuniquechar = N Items(unique_char); //will be 5, if categories are A, B, C, D, E
unique_aa = Associative Array(unique_char, Repeat({.}, nuniquechar)); //repeat to initialize values as missing
//create new window to create multiple number edit boxes
vlbExpr = V List Box();
For(i = 1, i <= nuniquechar, i++,
Insert Into(vlbExpr, Text Box("Number for " || Char(unique_char[i]) || ":")); //i.e. "Number for A:"
Eval(
Eval Expr(Insert Into(vlbExpr, Number Edit Box(., <<SET function=""></SET>
有关 Eval(EvalExpr()) 的信息,请参阅使用 Eval Insert、Eval Expr、Parse 和 Substitute 将一个表达式插入另一个表达式。 如果你想要公式