Wie verwenden Sie JSL, um schnell zwei Sätze von Bereichsspalten zu vergleichen, um das Minimum jeder Spalte zu erhalten?Der Titel ist etwas schwer zu verstehen.
Nehmen Sie diese große Klasse als Beispiel:
1. Fassen Sie zunächst die Durchschnittswerte von „Größe“ und „Gewicht“ nach Alter zusammen.
2. Fassen Sie dann den Median von „Größe“ und „Gewicht“ nach Alter zusammen.
3. Vergleichen Sie dann den Mittelwert und den Median von "Höhe" und nehmen Sie ihr Minimum.
Vergleichen Sie schließlich den Mittelwert und den Median des "Körpergewichts" und nehmen Sie ihr Minimum.

Ich werde den folgenden Code verwenden und ihn schließlich durchlaufen, um das Minimum zu erhalten.
Gibt es einen guten Code, der diesen Vergleich minimiert?
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;
);
Vielen Dank!
SkripterstellungBetreff: Wie verwendet man JSL, um schnell zwei Sätze von Bereichsspalten zu vergleichen, um das Minimum jeder Spalte zu erhalten?Danke Jim!
Betreff: Wie verwendet man JSL, um schnell zwei Sätze von Bereichsspalten zu vergleichen, um das Minimum jeder Spalte zu erhalten?Hier ist eine mögliche schnellere Lösung für Sie
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 )
);
);Betreff: Wie verwendet man JSL, um schnell zwei Sätze von Bereichsspalten zu vergleichen, um das Minimum jeder Spalte zu erhalten?Und es ist ineffizient:
Min( Als Spalte ( 2 + i ), Als Spalte ( 2 + c + i ) ) )Betreff: Wie verwendet man JSL, um schnell zwei Sätze von Bereichsspalten zu vergleichen, um das Minimum jeder Spalte zu erhalten?Diese Schleifenmethode ist langsam, wenn die Anzahl der Spalten und Zeilen, die für den Vergleich zusammengefasst werden müssen, groß ist.
Ist die Matrixmethode schneller? Oder es gibt andere gute Möglichkeiten.
Danke Experten!