如何製作 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 將一個表達式插入另一個表達式。 如果你想要公式