各列の最小値を取得するために、JSLを使用して2セットの範囲列をすばやく比較するにはどうすればよいですか?タイトルが少しわかりにくいです。
この大きなクラスを例として取り上げます。
1.1。 まず、「身長」と「体重」の平均値を年齢別にまとめます。
2.2。 次に、年齢別の「身長」と「体重」の中央値を要約します。
3.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を使用して2セットの範囲列をすばやく比較するにはどうすればよいですか?ジムありがとう!
Re:各列の最小値を取得するために、JSLを使用して2セットの範囲列をすばやく比較するにはどうすればよいですか?これがあなたのための可能なより速い解決策です
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を使用して2セットの範囲列をすばやく比較するにはどうすればよいですか?そしてそれは非効率的です:
Min(As Column(2 + i)、As Column(2 + c + i)))Re:各列の最小値を取得するために、JSLを使用して2セットの範囲列をすばやく比較するにはどうすればよいですか?比較のために要約する必要のある列と行の数が多い場合、このループ方法は遅くなります。
マトリックス法の方が速いですか?それとも他の良い方法がありますか?
専門家に感謝します!