Gibt es eine effiziente Möglichkeit, diese zirkuläre Aggregation durchzuführen?Verwenden Sie die Form der großen Klasse:
1. Extrahieren Sie ab Zeile 20 eine Teilmenge der Daten aus dieser Zeile in die vorherigen 19 Zeilen.
2. Klassifizieren Sie diese Teilmenge nach Alter und fassen Sie Größe und Gewicht zusammen. Die Ergebnisse werden nacheinander verkettet.
Danke!
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
j = 1;
For( j = 20, j <= N Row( dt ), j++,
dt << Select Where( j - 20 < Row() <= j );
d3 = dt << Subset( Output Table( "tab" ), Selected Rows( 1 ), selected columns( 0 ) );
d1 = d3 << Summary(
Sum( height ),
Sum( weight ),
Subgroup( age ),
Freq( 0 ),
Weight( 0 ),
Link to original data table( 0 ),
statistics column name format( "column" )
);
If( j == 20,
d2 = d1;
d2 << setName( "tmp" );
,
Current Data Table( d2 );
d2 << Concatenate( Data Table( d1 ), Append to first table );
Close( d1, nosave );
);
Close( d3, nosave );
);
Automatisierung und SkripterstellungWindowsBetreff: Gibt es eine effiziente Möglichkeit, diese zirkuläre Aggregation durchzuführen?Wenn Sie Ihre JSL so strukturieren, wie Sie sind, profitieren Sie von einigen netten JMP-Funktionen.Das Schreiben von JSL zum Erstellen der gewünschten Ausgabe würde viel Codierung erfordern.Im Folgenden habe ich einige kleinere Anpassungen an Ihrem Skript vorgenommen, die Ihnen möglicherweise ein etwas effizienteres Skript ermöglichen.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
d2 = New Table( "tmp" );
k = 1;
For( k = 20, k <= N Row( dt ), k++,
dt << Select Where( k - 20 < Row() <= k );
d3 = dt << Subset( Output Table( "tab" ), Selected Rows( 1 ), selected columns( 0 ), private );
d1 = d3 << Summary(
Sum( height ),
Sum( weight ),
Subgroup( age ),
Freq( 0 ),
Weight( 0 ),
Link to original data table( 0 ),
statistics column name format( "column" )
);
d2 << Concatenate( Data Table( d1 ), Append to first table );
Close( d1, nosave );
Close( d3, nosave );
);
Ich habe den Namen Ihrer Indexvariablen namens „j“ geändert.Dies dient dazu, mögliche Verwirrung zu vermeiden.JMP hat eine Funktion namens j().Es empfiehlt sich, auch eine Variable mit dem Namen „j“ zu vermeiden.
Betreff: Gibt es eine effiziente Möglichkeit, diese zirkuläre Aggregation durchzuführen?Danke, Jim!
Ich möchte JMP verwenden, um schnell den Chip-Peak jeder Aktie in verschiedenen Zyklen zu berechnen. Es ist zu rechenintensiv.
Betreff: Gibt es eine effiziente Möglichkeit, diese zirkuläre Aggregation durchzuführen?ar=[];ar=J(r,c,0);