Aggiorna il nome della colonna dal file di configurazione utilizzando JSL per il tipo di dati carattereCiao a tutti,
Questo è il seguito di una precedente domanda correlata che ho pubblicato ieri. Vorrei chiedere come si aggiorna il nome di una colonna per avere unità da un altro file di configurazione. Di seguito è riportato il codice della soluzione che ho adottato dal post di ieri, tranne per il fatto che ho apportato una modifica per tracciare un grafico logistico anziché bivariato. Ho scoperto che questo funziona bene per i grafici bivariati, ma quando provo a tracciare un grafico logistico, non sono in grado di vedere le unità come parte dell'etichetta dell'asse y. Anche se le unità fanno parte del titolo, sarebbe ok.
// This version of the script used Transform variables
// to temporarially change the name of the column just
// for the running of the Bivariate
Names Default To Here( 1 );
dt = open( "table_1.jmp" );
dt1 = open( "config_table.jmp" );
// Add the Units Column Property to the columns in the
// original data table
For( i = 1, i <= N Cols( dt ), i++,
foundRow = dt1 << get rows where(
:Column_name == Column( dt, i ) << get name & dt1
:additional_name != ""
);
If( N Rows( foundRow ) > 0,
column( dt, i ) << set property("units", eval(dt1:additional_name[foundRow[1]]));
);
);
// Now run logistic
For( i = 2, i <= N Cols( dt ), i++,
dt << Logistic( Y( Column( i ) ), X( :id ) )
);Le tabelle dati sono allegate.
Grazie,
Simon
ScriptingOggetto: Aggiorna il nome della colonna dal file di configurazione utilizzando JSL per il tipo di dati carattereApparentemente la piattaforma logistica non supporta la gestione automatica delle (Unità).Tuttavia, lo script seguente si occupa di questo.

Names Default To Here( 1 );
dt = Data Table( "table_1.jmp" );
dt1 = Data Table( "config_table.jmp" );
// Add the Units Column Property to the columns in the
// original data table
For( i = 1, i <= N Cols( dt ), i++,
foundRow = dt1 << get rows where(
:Column_name == Column( dt, i ) << get name & dt1:additional_name !=
""
);
If( N Rows( foundRow ) > 0,
Column( dt, i ) << set property(
"units",
Eval( dt1:additional_name[foundRow[1]] )
)
);
);
// Now run logistic
For( i = 2, i <= N Cols( dt ), i++,
log = dt << Logistic( Y( Column( i ) ), X( :id ) );
Report( log )[AxisBox( 1 )][Text Box( 1 )] <<
set text(
Char( Report( log )[AxisBox( 1 )][Text Box( 1 )] << get text ) || "("
|| Char( Column( i ) << get property( "units" ) ) || ")"
)
;
);Oggetto: Aggiorna il nome della colonna dal file di configurazione utilizzando JSL per il tipo di dati carattereCiao Jim,
Ho eseguito il tuo script e ho ricevuto il seguente errore:
Names Default To Here( 1 );
dt = Open( "table_1.jmp" );
dt1 = Open( "config_table.jmp" );
For( i = 1, i <= N Cols( dt ), i++,
foundRow = dt1 << get rows where(
:Column_name == Column( dt, i ) << get name & dt1:additional_name != ""
);
If( N Rows( foundRow ) > 0,
Column( dt, i ) << set property(
"units",
Eval( dt1:additional_name[foundRow[1]] )
)
);
);
For( i = 2, i <= N Cols( dt ), i++,
log = dt << Logistic( Y( Column( i ) ), X( :id ) );
Report( log )[AxisBox( 1 )][Text Box( 1 )] <<
set text(
Char( Report( log )[AxisBox( 1 )][Text Box( 1 )] << get text ) || "(" ||
Char( Column/*###*/(i) << get property( "units" ) ) || ")"
);
);
invalid argument in access or evaluation of 'Column' , Column/*###*/(i)
/*:
Names Default To Here( 1 );
dt = Open( "table_1.jmp" );
dt1 = Open( "config_table.jmp" );
For( i = 1, i <= N Cols( dt ), i++,
foundRow = dt1 << get rows where(
:Column_name == Column( dt, i ) << get name & dt1:additional_name != ""
);
If( N Rows( foundRow ) > 0,
Column( dt, i ) << set property(
"units",
Eval( dt1:additional_name[foundRow[1]] )
)
);
);
For( i = 2, i <= N Cols( dt ), i++,
log = dt << Logistic( Y( Column( i ) ), X( :id ) );
Report( log )[AxisBox( 1 )][Text Box( 1 )] <<
set text(
Char( Report( log )[AxisBox( 1 )][Text Box( 1 )] << get text ) || "(" ||
Char( Column/*###*/(i) << get property( "units" ) ) || ")"
);
);
invalid argument in access or evaluation of 'Column' , Column/*###*/(i)
Grazie,
Simon
Oggetto: Aggiorna il nome della colonna dal file di configurazione utilizzando JSL per il tipo di dati carattereHo eseguito il codice fino a JMP 11, senza errori.Se noti, c'è un / * ### * / in una delle righe di codice che hai pubblicato.Rimuovilo e prova a rieseguire il codice.Ecco il codice che ho usato.Nota che ho cambiato il tuo codice per fare riferimento alle tabelle di dati assumendo che le tabelle di dati siano aperte.Quale versione di JMP stai utilizzando.
Nomi predefiniti fino a qui (1); dt = tabella dati ("table_1.jmp"); dt1 = tabella dati ("config_table.jmp"); Per (i = 1, i <= N Cols (dt), i ++, foundRow = dt1 << ottieni righe dove (: Column_name == Column (dt, i) << get name & dt1: additional_name! = ""); If (N Rows (foundRow)> 0, Column (dt, i) << set property ("units", Eval (dt1: additional_name [foundRow [1]])));); Per (i = 2, i <= N Cols (dt), i ++, log = dt << Logistic (Y (Column (i)), X (: id)); Report (log) [AxisBox (1)] [ Text Box (1)] << set text (Char (Report (log) [AxisBox (1)] [Text Box (1)] << get text) || "(" || Char (Column / * ### * / (i) << get property ("units")) || ")"););Oggetto: Aggiorna il nome della colonna dal file di configurazione utilizzando JSL per il tipo di dati carattereSto usando JMP12. Ottengo di nuovo lo stesso errore se eseguo il codice così com'è.
Quando rimuovo la riga sottostante, ottengo il grafico allegato senza unità sulle etichette.
// Char (Column / * ### * / (i) << get property ("units")) || ")"
Qualche idea?
Names Default To Here( 1 );
dt = data table( "table_1.jmp" );
dt1 = data table( "config_table.jmp" );
For( i = 1, i <= N Cols( dt ), i++,
foundRow = dt1 << get rows where(
:Column_name == Column( dt, i ) << get name & dt1:additional_name != ""
);
If( N Rows( foundRow ) > 0,
Column( dt, i ) << set property(
"units",
Eval( dt1:additional_name[foundRow[1]] )
)
);
);
For( i = 2, i <= N Cols( dt ), i++,
log = dt << Logistic( Y( Column( i ) ), X( :id ) );
Report( log )[AxisBox( 1 )][Text Box( 1 )] <<
set text(
Char( Report( log )[AxisBox( 1 )][Text Box( 1 )] << get text ) || "("
//Char( Column/*###*/(i) << get property( "units" ) ) || ")"
);
);