如何使用JSL快速比較兩組範圍列以獲得每列的最小值?標題有點難懂。
以這個大類為例:
1. 首先,以年齡總結「身高」和「體重」的平均值。
2. 然後按年齡總結「身高」和「體重」的中位數。
3. 然後比較“身高”的平均值和中位數並取最小值。
最後,比較「體重」的平均值和中位數並取最小值。

我將使用以下程式碼並最終循環以獲得最小值。
有沒有好的程式碼可以最小化這種比較?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
d1 = dt << Summary(
Group( :age ),
Mean( :height ),
Mean( :weight ),
Median( :height ),
Median( :weight ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 ),
statistics column name format( "column" )
);
c = N Col( d1 ) / 2 - 1;
For( i = 1, i <= c, i++,
ca = Column( i + 2 ) << Get Name || "0";
d1 << New Column( ca, formula( Min( As Column( 2 + i ), As Column( 2 + c + i ) ) ) );
d1 << run formulas;
Column( ca ) << deleteFormula;
);
謝謝!
進階統計建模消費者與市場研究內容組織大規模客製化預測建模和機器學習品質和工藝工程Re: 如何使用JSL快速比較兩組範圍列以獲得每列的最小值?謝謝吉姆!
Re: 如何使用JSL快速比較兩組範圍列以獲得每列的最小值?這是一個可能為您提供的更快的解決方案
Names Default To Here( 1 );
dtOrig = open("$SAMPLE_DATA/semiconductor capability.jmp");
colNames = dtOrig << get column names(continuous);
dt = dtOrig << Summary(
Group( :SITE ),
mean(colnames),median(colnames),
link to original data table(0)
);
half = N Col( dt ) / 2 - 1;
For( i = 3, i <= half, i++,
mat = dt[0, i];
mat = mat || dt[0, i + half];
v = Transpose( V Min( Transpose( mat ) ) );
dt << New Column( "Min" || Substr( Column( dt, i ) << get name, Contains( Column( dt, i ) << get name, "(" ) ),
set values( v )
);
);Re: 如何使用JSL快速比較兩組範圍列以獲得每列的最小值?而且效率很低:
Min( 作為列( 2 + i ), 作為列( 2 + c + i ) ) )Re: 如何使用JSL快速比較兩組範圍列以獲得每列的最小值?當需要總和比較的列數和行數很大時,這種循環方法很慢。
矩陣法更快嗎?或者有其他好的方法。
感謝專家!