データセットから抽出された 2 つのリストがあります。1 つのリストには列名が含まれ、もう 1 つのリストには、特定の条件に基づいて抽出された特定の値 (各列から 1 つの値) が含まれています。
List1 = {重量、酸素摂取量.......};
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 は、列名の値が Cols の現在の列名と一致する dt1 の行を取得します。