Remplir une nouvelle colonne à l'aide d'une formule conditionnelleJ'essaie de remplir une nouvelle colonne ( :Prog_ ) avec "A" ou "B" en fonction de la valeur de (:Assign Month).:Assign Month est une variable numérique continue m/d/y.
Le script ci-dessous entraîne le remplissage de la colonne :Prog_ mais pas avec les valeurs avec lesquelles j'essaie de remplir la colonne :Prog_.
J'aimerais remplir les lignes de la colonne :Prog_ avec un "A" si :Assign Month <= "06/15/2016"
J'aimerais remplir les lignes de la colonne :Prog_ avec un "B" si :Assign Month est > 15/06/2016"
Voici le script que j'ai essayé d'utiliser (sans succès) jusqu'à présent :
CT << Nouvelle Colonne("Prog_", Caractère);
Pour chaque ligne(Prog_ = if( Char(Format(:Assign Month,"m/d/y")) <= "06/15/2016", "A", "B" ));
CT << Nouvelle Colonne("Prog_", Caractère);
Pour chaque ligne(Prog_ = if( :Assign Month <= 06/15/2016, "A", "B" ));
Modélisation statistique avancéeAutomatisation et scriptsÉtudes de consommation et de marchéIngénierie Qualité et ProcédésPartager et communiquer les résultatsRe : Remplir une nouvelle colonne à l'aide d'une formule conditionnelleMerci pour votre aide avec ce script !
Dan F.
Re : Remplir une nouvelle colonne à l'aide d'une formule conditionnelleBonjour Mark - Merci pour votre aide avec ce script !
Dan F.
Re : Remplir une nouvelle colonne à l'aide d'une formule conditionnelleVotre variable d'origine est numérique et représente une valeur de date et d'heure JMP. Il n'est pas nécessaire de le convertir en chaîne de caractères formatée. Vous pouvez spécifier le seuil de temps directement sous forme de constante.
CT << New Column( "Prog_", Character );
For Each Row( :Prog_ = If( :Assign Month <= 15Jun2016, "A", "B" ) );
Re : Remplir une nouvelle colonne à l'aide d'une formule conditionnelleVoici comment je gère généralement ce type de problème.La fonction Informat() convertit une chaîne en une représentation numérique de la date, qui peut ensuite facilement être comparée aux valeurs JMP DateTime.
CT = Current Data Table();
CT << New Column( "Prog_", Character );
For Each Row( Prog_ = If( :Assign Month <= Informat( "06/15/2016", "mdy" ), "A", "B" ) );
Et pour ajouter à @Thierry_S vous pourriez éviter le For Each Row() si vous créiez une colonne de formule
CT = Current Data Table();
CT << New Column( "Prog_",
Character,
formula(
If( :Assign Month <= Informat( "06/15/2016", "mdy" ),
"A",
"B"
)
)
);
Re : Remplir une nouvelle colonne à l'aide d'une formule conditionnelleSalut,
Tout d’abord, assurez-vous que la colonne : Assign Month est au format de date numérique continue ; Je suppose que votre utilisation de guillemets dans votre formule indique que ce n'est pas le cas actuellement.
Deuxièmement, vous n'avez pas besoin de demander à JMP d'examiner chaque ligne, il le fait par défaut.
Troisièmement, la formule dans la colonne :Prog_ devrait simplement être :
If( :Column 1 <= Date MDY( 16, 05, 2016 ),
"A",
"B"
)
Il convient de noter que si cela fait partie d'un script JSL, la fonction doit être incluse dans l'instruction New Column (consultez l'aide sur les scripts pour connaître la syntaxe exacte.
Meilleur,
TS