Popolamento di una nuova colonna utilizzando una formula condizionaleSto tentando di compilare una nuova colonna (: Prog_) con "A" o "B" in base al valore di (: Assegna mese).: Assegna mese è una variabile numerica, continua, m / g / a.
Il risultato dello script seguente nella colonna: Prog_ viene popolata ma non con i valori con cui sto cercando di popolare la colonna: Prog_.
Vorrei compilare le righe della colonna: Prog_ con una "A" se: Assegna mese <= "15/06/2016"
Vorrei compilare le righe della colonna: Prog_ con una "B" se: Assegna mese è> 15/06/2016 "
Ecco lo script che ho provato a utilizzare (senza successo) finora:
CT << Nuova colonna ("Prog_", carattere);
Per ogni riga (Prog_ = if (Char (Format (: Assign Month, "m / d / y")) <= "06/15/2016", "A", "B"));
CT << Nuova colonna ("Prog_", carattere);
Per ogni riga (Prog_ = if (: Assign Month <= 06/15/2016, "A", "B"));
ScriptingOggetto: popolare una nuova colonna utilizzando una formula condizionaleCiao,
Innanzitutto, assicurati che la colonna: Assegna mese sia formattata come un formato di data numerico e continuo; Immagino che l'uso delle virgolette nella formula indichi che attualmente non è così.
Secondo, non è necessario dire a JMP di guardare ogni riga, lo fa per impostazione predefinita.
Terzo, la formula nella colonna: Prog_ dovrebbe essere semplicemente:
Se (: Colonna 1 <= Data MDY (16, 05, 2016),
"UN",
"B"
)
Da notare, se questo fa parte di uno script JSL, la funzione dovrebbe essere inclusa nell'istruzione New Column (controllare la guida Scripting per la sintassi esatta.
Migliore,
TSOggetto: popolare una nuova colonna utilizzando una formula condizionaleEcco come gestisco in genere questo tipo di problema.La funzione Informat () converte una stringa in una rappresentazione numerica della data, che può quindi essere facilmente confrontata con i valori DateTime di JMP.
CT = Current Data Table();
CT << New Column( "Prog_", Character );
For Each Row( Prog_ = If( :Assign Month <= Informat( "06/15/2016", "mdy" ), "A", "B" ) );
E da aggiungere a @Thierry_S potresti evitare il For Each Row () se hai creato una colonna formula
CT = Current Data Table();
CT << New Column( "Prog_",
Character,
formula(
If( :Assign Month <= Informat( "06/15/2016", "mdy" ),
"A",
"B"
)
)
);
Oggetto: popolare una nuova colonna utilizzando una formula condizionaleLa variabile originale è numerica e rappresenta un valore di data e ora JMP. Non è necessario convertirlo in una stringa di caratteri formattata. È possibile specificare la soglia temporale direttamente come costante.
CT << New Column( "Prog_", Character );
For Each Row( :Prog_ = If( :Assign Month <= 15Jun2016, "A", "B" ) );