CIAO,
Sto lavorando con dati che assomigliano a questo. Voglio creare un'istruzione IF in una nuova colonna, dicendo che se il DOW (giorno della settimana) è lunedì, dovrebbe inserire il valore nella colonna "T-28", se martedì, quindi inserire il valore in "T-12 "ecc ecc. Come faccio a fare questo?
IF(DOW=="Lun",???)

Per creare la formula della colonna, puoi utilizzare il file Se dichiarazione o il incontro dichiarazione; la sintassi della corrispondenza è un po' più facile da leggere:
New Table( "example",
New Column( "DOW", character, Set Values( {"Mon", "Tue", "Wed", "Thu"} ) ),
New Column( "T-28", Set Values( [38, 35, 26, 28] ) ),
New Column( "T-21", Set Values( [45, 47, 43, 48] ) ),
New Column( "T-14", Set Values( [60, 65, 54, 65] ) ),
New Column( "T-13", Set Values( [63, 68, 62, 70] ) ),
New Column( "T-12", Set Values( [65, 78, 72, 72] ) ),
New Column( "T-11", Set Values( [70, 82, 72, 72] ) ),
New Column( "Conditional",
Formula(
Match( :DOW,
"Mon", :Name( "T-28" ),
"Tue", :Name( "T-21" ),
"Wed", :Name( "T-14" ),
"Thu", :Name( "T-13" ),
-9999 // else...use . for missing value
)
)
)
)
Poiché i nomi delle colonne contengono trattini (sottrazione), hanno bisogno del wrapper name().
Con un'istruzione if:
New Table( "example",
New Column( "DOW", character, Set Values( {"Mon", "Tue", "Wed", "Thu"} ) ),
New Column( "T-28", Set Values( [38, 35, 26, 28] ) ),
New Column( "T-21", Set Values( [45, 47, 43, 48] ) ),
New Column( "T-14", Set Values( [60, 65, 54, 65] ) ),
New Column( "T-13", Set Values( [63, 68, 62, 70] ) ),
New Column( "T-12", Set Values( [65, 78, 72, 72] ) ),
New Column( "T-11", Set Values( [70, 82, 72, 72] ) ),
New Column( "Conditional",
Formula(
if(
:DOW=="Mon", :Name( "T-28" ),
:DOW=="Tue", :Name( "T-21" ),
:DOW=="Wed", :Name( "T-14" ),
:DOW=="Thu", :Name( "T-13" ),
-9999 // else...use . for missing value
)
)
)
)
The else value handles unknown day namesThe else value handles unknown day namesIl valore else gestisce i nomi dei giorni sconosciuti
JMP preferirebbe davvero usare . per un valore mancante invece di -9999; L'ho usato per questa demo in modo che l'effetto fosse chiaro.
Puoi anche utilizzare l'editor di formule invece di JSL; fai clic su + accanto alla colonna Condizionale nel riquadro a sinistra della tabella dati (sopra) per visualizzare l'editor di formule (sotto):
The Formula Editor has a list of functionsThe Formula Editor has a list of functionsL'editor di formule ha un elenco di funzioni
Se Segreti post sul blog
È utile comprendere più funzioni. Mi piace usare la potenza degli elenchi e preferisco non utilizzare le funzioni nelle mie tabelle, a meno che non allego uno script per impostare i valori di una colonna.
Names Default To Here( 1 );
dt = New Table("example",
New Column("DOW", character, values({"Mon", "Tue", "Wed", "Thu" }) ),
NewColumn("T-28", numeric, values({38,35,26,28})),
NewColumn("T-21", numeric, values({45, 47, 43, 48})),
NewColumn("T-14", numeric, values({60, 65, 54, 65})),
NewColumn("T-13", numeric, values({63, 68, 62, 70})),
NewColumn("T-12", numeric, values({65, 78,72,72})),
NewColumn("T-11", numeric, values({70,82,72,72}))
);
dt << newColumn("Conditional", numeric);
dowlist = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
clist = {"T-28", "T-21", "T-14", "T-13", "T-12", "T-11"};
dt:Conditional << set each value( Column(dt,clist[Contains(dowlist, :DOW)])[] ) ; 
@anjana ,
Ti consiglierei di guardare qui. Questa è una risorsa molto utile per capire come utilizzare diverse funzioni in JMP

Ecco un esempio, che dice se x è il valore che stai tentando di assegnare a una delle colonne, quindi se il valore nella colonna DOW = "Mon", assegna il valore di x alla colonna "T-28" , altrimenti assegnalo alla colonna "T-12"
:Name("T-28") = x ; <BR /> , <BR /> // else <BR /> :Name(T-12) = x; <BR /> ); If(:DOW == "Mon",
// then <BR />