如何使用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。