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