Re : Script JMP pour la colonne moyenneBonjour @hsjoyner ,
Avez-vous étudié la fonction column() ? Au lieu d'utiliser un nom de colonne, vous pouvez utiliser son index.Cela pourrait être utile dans une boucle for().

Re : Script JMP pour la colonne moyenneSi le nombre de colonne est fixe, vous pouvez coder en dur le moyens ,
si le "etc." est variable, vous avez probablement besoin de quelques Insérer dans et Eval(Remplacer()):
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
offset = 5;
nc = N Col( dt );
length = 10;
groups = Floor((nc - offset) / length);
For( group = 1, group <= groups, group++,
myFormula = Expr( Mean() );
For( i = 1, i <= length, i++,
Insert Into( myFormula, NameExpr(As Column( offset + (group-1)*length +i ) ))
);
myName = "average" || Char( group );
Eval(Substitute(Expr(new Column(__myName__,Formula(__myFormula__))),Expr(__myFormula__),NameExpr(myFormula),Expr(__myName__),NameExpr(myName) ));
);
Re : Script JMP pour la colonne moyenneVoici un script qui, je l'espère, créera ce que vous recherchez.Il crée de nouvelles colonnes qui font la moyenne de groupes de 10 colonnes pour un nombre indéterminé de colonnes.

names default to here(1);
// Create an example data table to use for illustration of how to
// create the sets of average columns
dt =
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Delete the first 3 columns to match the description
// of the suggested data table structure
dt << delete columns({"lot_id","wafer","wafer ID in lot ID"});
// Create new columns that have the groups of 10 columns
startingNCol = N Cols(dt);
start = 2;
groupSize = 10;
while(start+groupSize<=startingNCol,
eval(substitute(expr(
dt << New Column("Average " || char( start ) || "-" || char(start + groupSize),
set each value(Mean(current data table()[row(),index(theStart,theEnd)])));
),
expr(theStart), start, expr(theEnd), start+groupSize
));
start=start+groupSize;
);
Re : Script JMP pour la colonne moyenneMean(current data table()[row(),index(theStart,theEnd)])
wow, très élégant - beaucoup plus agréable que de remplir manuellement la moyenne avec les références de colonne !
Script JMP pour la colonne moyenneJ'ai un écrivain de script JMP TRÈS novice qui essaie d'écrire une commande pour faire la moyenne d'un ensemble de colonnes dans une nouvelle colonne avec les moyennes. Cela revient à mettre en surbrillance les colonnes, puis à sélectionner Nouvelle colonne de formule > Combiner > Moyenne. Cependant, je ne trouve rien dans la bibliothèque de scripts ou en ligne qui me permette de le faire. Quelqu'un a des suggestions?
Pour ajouter une complication supplémentaire, je souhaite que le script prenne les colonnes 2-11, 12-21, 22-31, etc. et fasse la moyenne de chaque groupe de colonnes. Les colonnes n'ont pas de noms définis, donc je ne peux pas simplement mettre les noms de colonne dans le script (il n'est pas possible de rendre les noms cohérents car les noms de colonne sont des exemples de noms et je dois les conserver ainsi). Le nombre de groupes de colonnes dans chaque fichier JMP n'est pas cohérent car le nombre d'échantillons dans chaque fichier JMP peut varier considérablement. Existe-t-il un moyen simple de le faire?
J'utilise JMP 17.0.0 sur un Mac si cela est utile. Toute aide est appréciée!
Fusion et nettoyage des donnéesmacOSRe: Script JMP pour la colonne moyennePourquoi la colonne de formule ne parvient-elle pas à produire les mêmes valeurs que dans la colonne Moyenne 2 - 12 ?
Moyenne( :NPN1, :PNP1, :PNP2, :NPN2, :PNP3, :IVP1, :PNP4, :NPN3, :IVP2, :NPN4, :SIT1 )
Edit : j'ai été distrait lors de la rédaction du commentaire et la formule ci-dessus produit une valeur correspondante.
Suivi : Mean() semble très sensible aux propriétés de format de colonne, car j'ai obtenu des résultats différents dans ma propre table de données lorsque les colonnes étaient définies sur Fixed Dec Width 15 Dec 3 par rapport à Best Width 12. Des recommandations pour éviter ce problème ?
Re: Script JMP pour la colonne moyenneSalut @hsjoyner ,
Si je comprends bien, et si vous souhaitez obtenir la moyenne de tous les groupes de colonnes, vous devriez pouvoir récupérer la liste des groupes de colonnes du tableau, puis parcourir ces noms de groupes pour créer des colonnes de formules qui extraient dynamiquement les colonnes de chaque groupe. Voici un exemple :
dt = Current Data Table();
groupNames = dt << get column groups names;
For Each( {groupName, index}, groupNames,
Eval(
Eval Expr(
dt << New Column( groupName || " Mean",
Formula( Mean( Current Data Table() << get column group( Expr( groupName ) ) ) )
)
)
)
);
J'espère que cela aide !
@julien
Edit : après avoir relu votre message et les réponses, j’ai réalisé que vous parliez de groupes de colonnes (c’est-à-dire d’ensembles de colonnes) plutôt que de colonnes regroupées dans le tableau. Cette réponse ne vous sera donc d’aucune utilité, mais je la laisse ici au cas où quelqu’un se retrouverait dans cette situation !:grinning_face: