데이터 집합에서 두 개의 목록을 추출하고 하나의 목록에는 특정 조건에 따라 열 이름과 다른 값 (각 열의 값 하나)이 추출됩니다.
List1 = {Wweight, O2 Uptake .......};
List2 = {38,59.08 .....};
이 단계가 끝나면 사용자는 스크립트에서 추출한 값을 제거할지 여부를 선택할 수있는 출력과 함께 아래의 JMP 테이블을 가져옵니다.

사용자는 주 테이블에서 값을 제거하거나 유지하려고 결정합니다.
내가 더 노력하려고하는 것은 :
1) 최소값을 찾기 위해 스크립트를 실행하고, 값이 해당 열에 대한 값과 일치하면 (즉, 사용자가 값을 유지하기로 결정했음을 의미 함) 다음 최소값을 얻고 싶습니다.
2) 그렇지 않은 경우 최소값을 추출합니다.
dt = current data table();
colNamesList = dt << get column names( string, numeric, continuous );
nc = N Items( colNamesList );
Names = {};
MinVals = {};
MinValList = {};
For( i = 1, i <= nc, i++,
Cols = Column( dt, i );
Insert into(Names, colNamesList[i]);
MinValue = Col Min( Cols );
Insert into(MinVals, MinValue);
MinRows = dt << get rows where( As Column( Cols ) == MinValue );
Insert into(MinValList, MinRows[1]);
);
dt1 = new table( "Data",
New Column( "Column Name", character, nominal, values(Names)),
New column( "Min value", numeric, nominal, values( MinVals)),
New Column( "Row Number", expression, nominal, values( MinValList ));
);사용자가 값을 제거했는지 여부와 상관없이 각 행을 확인하기 위해 값을 일치시킬 수 있습니까?
//Second Part
For( i = 1, i <= nc, i++,
Cols = Column( dt, i );
colMin = Col Min( Cols );
//If value in Col min is equal to value in MinValue, then skip that value and choose the next minimum value, else add that value to a new list
@cwillden 미안해, 아직도 나 한테는 효과가 없어. Linnerud 테이블의 열에 최소값이 여전히 있는지 확인하고 싶습니다. 그러나 나는 그 스크립트가 작동하도록 만들 수 없습니다.
row_temp에 대한 정의 끝에 "[1]"을 포함시켜야합니다. 죄송합니다. 실제로 JMP를 통해 예제 데이터 테이블을 실행하지 않고 여기에서 약간 힙합으로 촬영하고 있습니다. [1]을 추가하기 전에 전체를 괄호로 묶어야합니다.
(row_tmp <SPAN class="token operator">=</SPAN> dt1 <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Get Rows Where</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token punctuation">:</SPAN>Column Name <SPAN class="token operator">==</SPAN> Cols<SPAN class="token punctuation">))[1]</SPAN><SPAN class="token punctuation">;</SPAN>
아마도 문자열이 아닌 이름 객체와 비교할 수도 있습니다. 열 이름을 문자열로 가져 오려면 다음을 시도하십시오.
Cols = Column(dt, 1) << Get Name;
나는이 두 가지 변화 모두가 효과가있을 것이라고 생각한다.
다음과 같이 할 수 있습니다.
For( i = 1, i <= nc, i++,
Cols = Column( dt, i );
colMin = Col Min( Cols );
//If value in Col min is equal to value in MinValue,
//then skip that value and choose the next minimum value, else add that value to a new list
//get the corresponding row in the table (if it doesn't align with the index of your loop)
row_tmp = dt1 << Get Rows Where(:Column Name == Cols);
if(Min value[row_tmp] == colMin,
//Insert Code to look for next smallest value
)
)
row_tmp는 열 이름의 값이 열의 현재 열 이름과 일치하는 dt1의 행을 가져옵니다.