JMPソフトJSLを使って効率的に最小値を求めるにはどうすればよいですか?JMP ソフトウェア JSL を使用して、同じ行、複数の列の最小値、および最小値が存在する列のランクを効率的に見つける方法。
dt = Open( "$SAMPLE_DATA/PopAgeGroup.jmp" );
New Column( "mi" );
New Column( "ix" );
Column( "mi" ) << Formula( ? );
dt << run formulas;
Column( "mi" ) << deleteFormula;
Column( "ix" ) << Formula( ? );
dt << run formulas;
Column( "ix" ) << deleteFormula;

ウィンドウズ回复: JMP ソフトウェア JSL を使用して効率的に最小値を見つけるにはどうすればよいですか?ありがとう!
Column( "mi" ) << Formula(r=row();min( dt[r,8::13]) );
Column( "ix" ) << Formula(r=row();contains(dt[r,8::13],min( dt[r,8::13]) ));
Re: JMP ソフトウェア JSL を使用して最小値を効率的に求めるにはどうすればよいですか?これがあなたが探しているものですか
dtsub << New Column( "mi",
set each value( Min( dtsub[Row(), 8 :: 13] ) )
);
dtsub << New Column( "ix",
set each value(
theList = dtsub[Row(), 8 :: 13];
val = Loc( theList, Min( theList ) );
)
);
Re: JMP ソフトウェア JSL を使用して最小値を効率的に求めるにはどうすればよいですか?まず、値を検索する列のインデックスまたは名前を取得し、次に Min を使用して最小値を取得し、ロック()値を見つけるか、使用します最小値()インデックスを見つけてから、そのインデックスを使って最小値を見つけます。 以下は、Loc Min を使用してインデックスを取得し、値を取得する例です。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/PopAgeGroup.jmp");
// get either index or name of columns of interest
cols_of_interest = Filter Each({col_name}, dt << Get Column Names(Continuous, "String"),
!IsMissing(Regex(col_name, "^(Portion|F Rate).*[\d+]$"))
);
dt << New Column("MinIdx", Numeric, Continuous, << Set Each Value(
Loc Min(dt[Row(), cols_of_interest])
));
dt << New Column("MinVal", Numeric, Continuous, << Set Each Value(
dt[Row(), cols_of_interest[:MinIdx]]
));
また、数式が必要ない場合は、数式を使用せず、<< Set Each Value を使用することをお勧めします。