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 / j / y.
Le script ci-dessous entraîne le remplissage de la colonne: Prog_ mais pas avec les valeurs que j'essaie de remplir la colonne: Prog_.
Je voudrais remplir les lignes de la colonne: Prog_ avec un "A" si: Assign Month <= "06/15/2016"
Je voudrais remplir les lignes de la colonne: Prog_ avec un "B" si: Assign Month is> 06/15/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"));
ScriptingRe: Remplir une nouvelle colonne à l'aide d'une formule conditionnelleSalut,
Tout d'abord, assurez-vous que la colonne: Attribuer le mois est formatée au format de date numérique et continue; Je suppose que votre utilisation des guillemets dans votre formule indique que ce n'est pas le cas actuellement.
Deuxièmement, vous n'avez pas besoin de dire à JMP de regarder chaque ligne, il le fait par défaut.
Troisièmement, la formule dans la colonne: Prog_ doit simplement être:
Si (: Colonne 1 <= Date MDY (16, 05, 2016),
"UNE",
"B"
)
À noter, si cela fait partie d'un script JSL, la fonction doit être incluse dans l'instruction New Column (consultez l'aide Scripting pour la syntaxe exacte.
Meilleur,
TSRe: 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 être facilement 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 d'ajouter à @Thierry_S vous pouvez éviter le For Each Row () si vous avez créé 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 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 une 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" ) );