Sto cercando di leggere l'obiettivo e l'importanza da una tabella jmp e impostarli in colonne in una tabella diversa. Non riesco a capire come posso aggirare i nomi delle colonne per leggere i dati dall'altra tabella dei limiti. Ecco il mio script:
Names Default To Here( 1 );
// Select the data table and open it
path = Pick File( "Select Data Table" );
dt = Open( path );
// Select the limits table and open it
path = Pick File( "Select Limits Table" );
dt2 = Open( path );
Current Data Table( dt );
x = dt << Get Column Names(string,numeric);
y = dt2:ColumnName << Get Column Names();
show(x);
show(y);
ncols = N Items(x);
for (i=1, i<=ncols, i++,
a = Column(i) << Get Name;
show(a);
dt << current data table ();
Eval(
Eval Expr(
Column(dt,Expr(x)) << Set Property(
"Response Limits",
{Goal(Expr(Goal)), Lower(a,b), Middle(c,d), Upper(e,f)});
)
)
);
Apprezzerei se qualcuno potesse spiegarmi la parte di looping e matching. Grazie
@powerpuff
Per favore non smettere di fare domande! In effetti fai più domande, se ti aiuterà a capire gli script ecc. che i membri della comunità hanno incluso nelle loro risposte alle vostre domande. La mia speranza è che la Comunità possa aiutarvi nel vostro viaggio in JMP in modo che in un prossimo futuro sia possibile restituire i favori inoltrandoli ai futuri membri di new-to-JMP.
@txnelson Grazie mille per l'aiuto . Mi dispiace per la pubblicazione di domande frequenti. JMP è davvero nuovo per me. Grazie mille per l'aiuto.
@powerpuff ,
Lo script che hai elencato nella tua descrizione iniziale sembrava essere un raggruppamento di parti di codice che hai visto da altre fonti, piuttosto che uno script basato sull'elaborazione del problema.
La comunità di discussione JMP non è un gruppo di generatori di codice. Detto questo, di seguito è una sceneggiatura di lavoro del problema su cui stai lavorando.
Names Default To Here( 1 );
// Assign pointers to the data table, and limits table,
// using the sample tables you supplied
dt1 = Data Table( "example_limits" );
dt2 = Data Table( "res" );
// Loop through the table with the limits, and add them to the
// data table
For(i=1,i<=n rows(dt2),i++,
eval(
substitute(
expr(
__col__ << set property("Response Limits",
{Goal( __Goal__ ), Importance( __Imp__ ),
Lower( __LVal__, __LDes__ ),
Middle( __MVal__, __MDes__ ),
Upper( __UVal__, __UDes__ ),
Show Limits( 1 )
}
);
),
Expr( __col__ ), Parse( "dt1:" || dt2:ColumnName[i]),
Expr( __Goal__ ), Parse( dt2:Goal[i] ),
Expr( __Imp__ ), dt2:Importance[i],
Expr( __LVal__ ), dt2:Lower[i],
Expr( __LDes__ ), .,
Expr( __MVal__ ), dt2:Middle[i],
Expr( __MDes__ ), .,
Expr( __UVal__ ), dt2:Upper[i],
Expr( __UDes__ ), .,
)
)
);
Ancora una volta, ti incoraggio vivamente a leggere la Guida allo scripting.