Existe-t-il un moyen d'entrer une liste de colonnes en tant que variables de groupe dans la colonne moyenne/std dev/médiane ?Salut tout le monde,
J'essaie de générer une nouvelle colonne pour être une colonne moyenne de :A par des groupes spécifiés par :B, :C,
.
Existe-t-il un moyen de le faire où :B, :C,
'est-ce qu'une liste ? J'aimerais cela pour pouvoir le remplir à l'aide de Col Dialog.
Sinon, existe-t-il un moyen de diviser la liste en arguments ?
La première ligne ci-dessous me donne la moyenne souhaitée tandis que la deuxième ligne me donne la moyenne globale de :A.
moyenne= Nouvelle Colonne("Moyenne", Formule(Col Moyenne(:A, :B, :C,
)));
moyenne = Nouvelle Colonne("Moyenne", Formule(Col Moyenne(:A, {:B, :C,
})));
Merci d'avance.
ScriptRe : Existe-t-il un moyen d'entrer une liste de colonnes par variables de groupe dans la colonne moyenne/std dev/médiane ?Merci à tous, cela m'a mis dans la bonne direction.
Toujours en train d'apprendre les expressions et les évaluations, merci pour l'exemple.
Re : Existe-t-il un moyen d'entrer une liste de colonnes par variables de groupe dans la colonne moyenne/std dev/médiane ?Bien sûr qu'il y en a.@jthi montre une façon de le gérer, en convertissant les éléments de la liste que vous obtiendrez de votre boîte de dialogue, en expressions.Ou, puisque JSL est un langage de programmation, il vous fournit toutes les structures dont vous avez besoin pour résoudre le problème.Étant donné que vous êtes un peu nouveau dans JSL, je vous suggère fortement de jeter un coup d'œil au Guide de script.C'est le meilleur moyen d'en savoir plus sur les structures et les fonctionnalités de JSL.Le guide de script est disponible dans la bibliothèque de documentation JMP sous le menu déroulant Aide.
Voici une autre façon de gérer le problème, qui devrait vous donner ce que vous voulez
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colList = {"height", "Sex", "Age"};
__vals__ = Concat Items( colList, "," );
Eval(
Parse(
Eval Insert(
"dt << New Column( \!"Mean\!",
formula( Col Mean( ^__vals__^) )
)
;"
)
)
);
Re : Existe-t-il un moyen d'entrer une liste de colonnes par variables de groupe dans la colonne moyenne/std dev/médiane ?Merci Jim, y aurait-il un moyen de le faire si la taille de la liste était indéterminée ?
Re : Existe-t-il un moyen d'entrer une liste de colonnes par variables de groupe dans la colonne moyenne/std dev/médiane ?Si vous avez des colonnes dans une liste avec le format :nom, vous pouvez aussi utiliser cette option (idée de Utiliser la liste des colonnes dans les formules )
Names Default To Here(1);
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open("$SAMPLE_DATA/big class.jmp");
col_list = {:height, :Sex, :Age};
formula_expr = Name Expr(Substitute(col_list, Expr(List()), Expr(Col Mean())));
Eval(EvalExpr(
dt << New Column("Mean", Formula(Expr(formula_expr)));
));
Pour utiliser Eval, Eval Expr, Expr, Substitute... voir Insérer une expression dans une autre en utilisant Eval Insert, Eval Expr, Parse et Substitute
Re : Existe-t-il un moyen d'entrer une liste de colonnes par variables de groupe dans la colonne moyenne/std dev/médiane ?Voici un moyen simple de résoudre ce problème
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colList = {"height", "Sex", "Age"};
Eval(
Substitute(
Expr(
dt << New Column( "Mean",
formula( Col Mean( __one__, __two__, __three__ ) )
)
),
Expr( __one__ ), Parse( ":" || colList[1] ),
Expr( __two__ ), Parse( ":" || colList[2] ),
Expr( __three__ ), Parse( ":" || colList[3] )
)
);