Compilazione di una nuova colonna utilizzando una formula condizionaleSto tentando di popolare una nuova colonna ( :Prog_ ) con "A" o "B" in base al valore di (:Assign Month).:Assegna mese è una variabile numerica continua m/g/a.
Lo script seguente determina il popolamento della colonna :Prog_ ma non con i valori con cui sto tentando di popolare la colonna :Prog_.
Vorrei popolare le righe della colonna :Prog_ con una "A" se :Assign Month <= "06/15/2016"
Vorrei popolare le righe della colonna :Prog_ con una "B" se :Assign Month è > 15/06/2016"
Ecco lo script che ho provato ad utilizzare (senza successo) finora:
CT << Nuova colonna("Prog_", Carattere);
Per ogni riga(Prog_ = if( Char(Format(:Assegna mese,"m/g/a")) <= "15/06/2016", "A", "B" ));
CT << Nuova colonna("Prog_", Carattere);
Per ogni riga(Prog_ = if( :Assegna mese <= 15/06/2016, "A", "B" ));
Modellazione statistica avanzataAutomazione e scriptingRicerche sui consumatori e sul mercatoIngegneria della qualità e dei processiCondivisione e comunicazione dei risultatiRi: Compilazione di una nuova colonna utilizzando una formula condizionaleGrazie per il tuo aiuto con questo script!
Dan F.
Ri: Compilazione di una nuova colonna utilizzando una formula condizionaleCiao Mark, grazie per il tuo aiuto con questo script!
Dan F.
Ri: Compilazione di 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" ) );
Ri: Compilazione di una nuova colonna utilizzando una formula condizionaleEcco come generalmente gestisco 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 @Thierry_S potresti evitare 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"
)
)
);
Ri: Compilazione di una nuova colonna utilizzando una formula condizionaleCIAO,
Innanzitutto, assicurati che la colonna :Assegna mese sia formattata come formato di data numerica e continua; Immagino che l'uso delle virgolette nella formula indichi che attualmente non è così.
In secondo luogo, non è necessario dire a JMP di esaminare ogni riga, lo fa per impostazione predefinita.
Terzo, la formula nella colonna :Prog_ dovrebbe essere semplicemente:
If( :Column 1 <= Date MDY( 16, 05, 2016 ),
"A",
"B"
)
Da notare, se questo fa parte di uno script JSL, la funzione dovrebbe essere inclusa nell'istruzione New Column (controlla la guida allo scripting per la sintassi esatta.
Migliore,
TS