Ho scritto uno script che trova le righe in cui col2 e col3 corrispondono a stringhe specifiche e quindi restituisce il valore della cella in col7 di quelle righe.Tuttavia, ho problemi a scrivere queste variabili su Nuove colonne in Nuove tabelle.
....
New Table( "Results",Add Rows( 2 ),
New Column( " FUS",Character,"Nominal",
Set Values({"Fus1","Fus2"})),
New Column( "PASS/FAIL",continuous,"Nominal", formula( Name Expr(APass)),formula(Name Expr(BPass)));
)Qui, APass e Bpass sono variabili che equivalgono al valore della colonna7 dalle rispettive righe di ricerca.Sono rispettivamente le stringhe Pass e Fail.Tuttavia, quando creo la tabella, l'ultima funzione sovrascrive e inserisce i suoi risultati nell'intera tabella. Quindi la tabella dovrebbe essere Fus1-Pass Fus2-Fail, ma emette Fus1-Fail Fus2-Fail.Il contrario quando cambio l'ordine.
Qualche aiuto su come popolare una nuova colonna con più variabili?
Molto apprezzato
Come affermato nella tua precedente discussione su questo argomento, NON PUOI avere formule definite per una colonna.Ecco una semplice illustrazione di ciò che utilizza la tabella di dati Big Class.Se definisci 2 formule per una colonna, la seconda formula sostituirà la prima formula.
new column("two formula", formula(:height), formula(:weight));
Dà i seguenti risultati

Si noti che la seconda formula definita è quella che JMP finisce per utilizzare.
Ora, questo non significa che una formula non possa essere complessa.Si può effettivamente definire una formula che tratti ogni riga in modo diverso.Deve solo essere definito in una formula.Ecco un semplice esempio di una formula più complessa che include più colonne nella formula e le confronta.
New Column( "combined formula",
formula(
If(
:Sex == "F" & :age > 12, :weight,
:Sex == "F" & :age <= 12, :height,
:Sex == "M" & :age > 13, :weight,
:Sex == "M" & :age <= 13, :height
)
)
)

Ho fornito questa risposta a SMW in privato; speriamo che aiuti gli altri.
Prova a eseguire questo codice.Guarda nella finestra del registro per vedere cosa succede.Le righe get in cui la funzione restituisce una matrice, non un numero di riga effettivo.Devi eseguire il ciclo sulla matrice per utilizzare i valori di riga.
Names Default To Here( 1 );
dt1 = New Table( "Test", Add Rows( 4 ),
New Column( "Column 1", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1, 2, 3, 4] ) ),
New Column( "Column 2", Character, "Nominal",
Set Values( {"This is EMOTIONAL", "abc", "EMO", "Here's an EMO example"} ) ),
New Column( "Column 3", Character, "Nominal",
Set Values(
{"And not KLARIFIED", "KLA", "xyz", "This contains KLA string"} ) ),
New Column( "Column 4", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [., ., ., .] ) ),
New Column( "Column 5", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [., ., ., .] ) ),
New Column( "Column 6", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [., ., ., .] ) ),
New Column( "Column 7", Character, "Nominal",
Set Values( {"Hello", "World", "Fubar", "Ski"} ) ),
);
match_rows = dt1 << get rows where(contains(as column(2),"EMO")
& contains(as column(3),"KLA"));
for (i = 1, i <= nrows(match_rows), i++,
one_row = match_rows[i];
apass = column(dt1, 7)[one_row];
print(apass);
);