Pourquoi la moyenne de ma colonne ne correspond-elle pas à celle calculée via la plateforme de distribution, après avoir exclu la ou les lignes ?Calculer la moyenne des colonnes avant et après l'exclusion d'une ligne me donne les mêmes valeurs via JSL. C'est différent comme prévu lorsqu'il est obtenu à partir de la plateforme de distribution. Où est-ce que je me trompe dans JSL ?
Names Default To Here( 1 );
Clear Log();
dt = Open( "$sample_data\Semiconductor Capability.jmp" ); // get data table
//get spec limits into column properties
obj = dt << Manage Spec Limits( Y( dt << Get Column Group( "Processes" ) ), Show Limits All, Save to Column Properties(1) );
obj << close window; // close Manage Spec Limits window
colName = "M1_M1"; // choose column
colMean = Col Mean(dt:colName); show (colMean); // get column mean
colMin = Col Minimum(dt:colName); show (colMin); // get column minimum value
//plot distribution
Distribution(Stack(1), Continuous Distribution(Column(:M1_M1 ), Horizontal Layout(1),Vertical(0), Process Capability(0)));
dt << select where( dt:colName == colMin)<< Hide and Exclude; // hide and exclude the minimim value of the column
colMeanNew = Col Mean(dt:colName); show (colMeanNew); // get column mean again
//plot distribution again
Distribution(Stack(1), Continuous Distribution(Column(:M1_M1 ), Horizontal Layout(1),Vertical(0), Process Capability(0)));



Automatisation et scriptsles fenêtresRe : Pourquoi la moyenne de ma colonne ne correspond-elle pas à celle calculée via la plateforme de distribution, après avoir exclu la ou les lignes ?Col Mean() ne respecte pas les lignes exclues comme le font les plates-formes JMP.Si tu utilises:
colMeanNew = Col Mean( If( Excluded( Row State( Row() ) ), ., dt:colName ) );
cela vous donnera le résultat souhaité.
Re : Pourquoi la moyenne de ma colonne ne correspond-elle pas à celle calculée via la plateforme de distribution, après avoir exclu la ou les lignes ?Fonctions de colonne et états de ligne est une bonne lecture à ce sujet. Si cela ne vous dérange pas que les lignes exclues soient traitées comme leur propre groupe, vous pouvez également utiliser
Col Mean(dt:colName, Excluded())
Lorsque vous utilisez les fonctions Col de cette manière dans votre script (pas dans la formule) et que vous avez plusieurs groupes (Exclus aura son propre groupe), vous devez être un peu prudent. Vous pouvez soit modifier la ligne actuelle pour qu'elle soit non exclue (Row() = quelque chose), soit créer une formule avec la fonction Col.
Une autre option serait d'utiliser Summarize()
summarize(dt, my_mean = Mean(dt:colName));
Re : Pourquoi la moyenne de ma colonne ne correspond-elle pas à celle calculée via la plateforme de distribution, après avoir exclu la ou les lignes ?Notez que les formules de colonne avec exclus() sont réévaluées chaque fois que la sélection de ligne est modifiée :
Attention : Lieux où Jmp fait quelque chose d'inattendu
Pour les petites tables de données, c'est très bien : pour les grandes tables de données, cela entraîne un retard notable.
Ce problème sera résolu dans Jmp 18.