Existe-t-il un moyen efficace de faire cette agrégation circulaire ?Utilisez le formulaire de grande classe :
1. À partir de la ligne 20, extrayez un sous-ensemble des données de cette ligne aux 19 lignes précédentes.
2. Classer ce sous-ensemble en fonction de l'âge et résumer la taille et le poids. Et un par un les résultats récapitulatifs de la concaténation.
Merci!
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 );
);
Automatisation et scriptles fenêtresRe : Existe-t-il un moyen efficace de procéder à cette agrégation circulaire ?En structurant votre JSL comme vous le faites, vous profitez de certaines fonctionnalités intéressantes de JMP.L'écriture de JSL pour créer la sortie souhaitée nécessiterait beaucoup de codage.Ci-dessous, j'ai apporté quelques ajustements mineurs à votre script qui pourraient vous donner un script un peu plus efficace.
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 );
);
J'ai changé le nom de votre variable d'index appelée "j".Ceci afin d'éviter d'éventuelles confusions.JMP a une fonction nommée j().Il est préférable d'éviter d'avoir également une variable nommée "j".
Re : Existe-t-il un moyen efficace de procéder à cette agrégation circulaire ?Merci Jim!
Je souhaite utiliser JMP pour calculer rapidement le pic de puce de chaque stock dans différents cycles. C'est trop gourmand en calculs.
Re : Existe-t-il un moyen efficace de procéder à cette agrégation circulaire ?ar=[];ar=J(r,c,0);