Écart entre les résultats de calcul, moyenne des colonnes, etc.Pourquoi les résultats des calculs diffèrent-ils selon qu'on utilise des variables ou des chaînes de caractères directes ? Je soupçonne que la fonction de regroupement des variables ne fonctionne pas correctement. Comment résoudre ce problème ?
avec la formule suivante
Col Mean(
:data,
:A,
:B,
:C_D == "ccccccc"
)
Voici la formule.
Col Mean(
:data,
:A,
:B,
Column(Eval Insert("C_^get_input_1^" == get_input_2))
)
Automatisation et scriptageRe: Écart dans les résultats de calcul, moyenne des colonnes, etc.Désolé, tout le monde. J'ai oublié de mentionner queget_input_1etget_input_2peuvent être considérées comme déjà obtenues sous forme de chaînes de caractères, respectivement.
Re: Écart dans les résultats de calcul, moyenne des colonnes, etc.La première comparaison porte sur une colonne et une chaîne de caractères, tandis que pour la seconde, on ne sait pas exactement ce qui est comparé (une chaîne de caractères à une autre, qui serait toujours égale à 1 ou 0 ?). En tout cas, la comparaison n'est pas encore effectuée et vous devrez évaluer les valeurs dans la formule.
Insérez une expression dans une autre à l'aide des fonctions EvalInsert, EvalExpr, Parse et Substitute.
Re: Écart dans les résultats de calcul, moyenne des colonnes, etc.Je souhaite obtenir le même résultat que l'expression de la première ligne. Lorsque les variables étaient respectivement `get_input_1="D"` et `get_input_2="cccccc"`, je m'attendais naturellement au même résultat, mais la réalité était différente…
Re: Écart dans les résultats de calcul, moyenne des colonnes, etc.Eval(Substitute(
Expr(Col Mean(
:data,
:A,
:B,
_input1_ == _input2_
),
Expr(_input1_) = NameExpr(AsColumn(dt, get_input_1)),
Expr(_input2_) = get_input_2
)
));
mais vous devez ajouter une nouvelle colonne et une formule à cet exemple
Re: Écart dans les résultats de calcul, moyenne des colonnes, etc.
La colonne (Eval Insert("C_^get_input_1^" == get_input_2)) est évaluée à la colonne ( "C_D" == "ccccccc"), donc votre formule serait :
modifier
Inclure une valeur non-chaîne de caractères dans Eval Insert() a pour conséquence que cette fonction soit évaluée à une chaîne vide.
Col Mean(
:data,
:A,
:B,
Column( "" )
);
C'est peut-être pour cela que cela ne fonctionne pas comme prévu. La solution de Jarmo devrait vous convenir.
Re: Écart dans les résultats de calcul, moyenne des colonnes, etc.
Merci pour vos réponses. Veuillez également m'excuser pour mes réponses tardives.
J'ai écrit le code JSL comme indiqué ci-dessous, mais une erreur s'affiche. Quelle pourrait en être la cause ?
Le message d'erreur indique « arguments insuffisants » à l'emplacement « Substitute/ ### /(Expr().
Data Table( "data_table" ) << New Column( Eval Insert("Xbar_^get_input_process^_^get_input_line^"),
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Eval(Substitute(
Expr(Col Mean(
:data,
:A,
:B,
_input1_ == _input2_
),
Expr(_input1_) = NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) = get_input_2
)
));
)) << Run Formulas;
Re: Écart dans les résultats de calcul, moyenne des colonnes, etc.Insérez une expression dans une autre à l'aide des fonctions EvalInsert, EvalExpr, Parse et Substitute.
Il s'agit probablement de quelque chose comme ceci, mais je ne peux pas le tester car je ne dispose pas des données ni de la première partie du script.
Names Default To Here(1);
dt = Data Table("data_table");
Eval(Substitute(
Expr(Data Table("data_table") << New Column(colname,
Numeric,
"Continuous",
Formula(Col Mean(:data, :A, :B, _input1_ == _input2_)),
)),
Expr(colname), Substitute(Xbar_^get_input_process^_^get_input_line^),
Expr(_input1_) = NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) = get_input_2
));
Re: Écart dans les résultats de calcul, moyenne des colonnes, etc.Merci de votre attention, même s'il était difficile de faire des expériences sans pouvoir fournir de données concrètes.
Je l'ai modifié comme suit pour l'adapter à mon tableau de données.
Names Default To Here(1);
dt = Data Table("data_table");
Eval(Substitute(
Expr(Data Table("data_table") << New Column(colname,
Numeric,
"Continuous",
Formula(Col Mean(:data, :A, :B, _input1_ == _input2_)),
)),
Expr(colname), Eval Insert(Xbar_^get_input_process^_^get_input_line^),
Expr(_input1_) , NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) , get_input_2
));