다른 열을 기반으로 열에 값을 할당하는 사용자 입력을 위한 새 창을 만드는 JMP 스크립트를 만드는 방법안녕하세요,
JMP 스크립트의 특정 부분에서 멈춰서 다른 시각에서 도움을 받고 싶습니다.
다음과 같은 데이터 세트가 있지만 더 많은 카테고리가 있고 각 카테고리의 이름이 더 깁니다.

주어진 열을 기반으로 숫자 값을 사용하여 다른 열을 만들고 싶습니다. 이 제품은 각 카테고리가 나열된 팝업 창과 사용자가 카테고리에 해당하는 숫자 값을 입력할 수 있는 숫자 편집 상자를 사용하여 완전히 자동화되어야 합니다. 예를 들어:
팝업 창 상자: 팝업 창 상자에 모든 프롬프트가 포함된 새 창입니다.
A에 해당하는 값을 입력하세요. ___1___ B에 해당하는 값을 입력하세요. ____2___ C에 해당하는 값을 입력하세요. ___삼___ D에 해당하는 값을 입력하세요. ____4___ E에 해당하는 값을 입력하세요. ____5___ |
결과 데이터 테이블은 다음과 같아야 합니다.

다음은 제가 현재 가지고 있는 JMP 스크립트입니다. 이번 포스팅에는 JMP 파일도 업로드했습니다. 내가 도움이 필요한 것은 빨간색 텍스트 아래에. 사용자 입력을 기반으로 하고 목록의 i번째 고유 범주에 해당하는 for 루프에서 i번째 값을 할당하는 데 문제가 있습니다. 고유_문자 , 초기화된 숫자 목록의 i번째 위치로, num_list , 이는 나중에 열 2를 생성하기 위한 다음 for 루프에서 사용됩니다(아래 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를 만들기 위해 다음 조건부 논리를 사용하는 자동화되고 사용자 친화적인 버전이 될 것입니다.

품질 및 프로세스 엔지니어링Re: 다른 열을 기반으로 열에 값을 할당하는 사용자 입력을 위한 새 창을 만드는 JMP 스크립트를 만드는 방법확실히 – 그것은 내가 막히기 전에 하려고 생각했던 것입니다. 하지만 저는 JMP 인터페이스를 잘 모르는 사람들을 위한 애플리케이션을 갖고 싶습니다.
Re: 다른 열을 기반으로 열에 값을 할당하는 사용자 입력을 위한 새 창을 만드는 JMP 스크립트를 만드는 방법당신은 열 > 녹음 플랫폼?원하는 것을 수행하는 좋은 낮은 기술 방법일 수 있습니다.
Re: 다른 열을 기반으로 열에 값을 할당하는 사용자 입력을 위한 새 창을 만드는 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>Re: 다른 열을 기반으로 열에 값을 할당하는 사용자 입력을 위한 새 창을 만드는 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를 사용하여 하나의 표현식을 다른 표현식에 삽입합니다. . 그리고 공식을 갖고 싶다면