JSL_open und Datentabellen aus einer Liste in einer for-Schleife verknüpfenHallo, ich versuche, ein Skript zum Verknüpfen von Tabellen in JSL zu schreiben, in dem wir die Anzahl der zu verknüpfenden Tabellen eingeben können. Zu diesem Zweck habe ich Listen erstellt, um den Speicherort der HTML-Tabelle, Tabellennamen und Joiner-Spalten einzugeben.
Vor dem Join öffne ich zunächst die Tabellen und entnehme in einer for-Schleife ein Element aus den Listen.
Ich erhalte die Fehlermeldung „Indexproblem beim Zugriff oder bei der Auswertung von „tables_list[i]“, tables_list[/*###*/].
Irgendeine Idee, was ich falsch gemacht habe? Vielen Dank im Voraus für die Unterstützung
// Indicate how many input data tables you have (default = 1)
nb_join_tables = 2;
// Indicate here the link to the first input HTML table
input_table_01 = "http://xxxx.html";
// Indicate here the names you want for your first JMP data tables
JMP_table_01_name = "xxx -01";
// Indicate here the link to the input HTML table to join
input_table_02 = "http://xxxx.html";
input_table_03 = "http://xxxx.html";
// Indicate here the names you want for the data tables to join
JMP_table_02_name = "xxx -02";
JMP_table_03_name = "xxx -03";<BR /><BR />// indicate here the column you want JMP to use as joiner for the tables merge (default:Parameter Set Name)<BR />joiner_table_01 = "Parameter Set Name";<BR />joiner_table_02 = "Parameter Set Name";<BR />joiner_table_03 = "Parameter Set Name";
// Create lists according to the number of tables to merge
tables_list = {input_table_01,input_table_02,input_table_03};
names_list= {JMP_table_01_name,JMP_table_02_name,JMP_table_03_name};
joiners_list = {joiner_table_01,joiner_table_02,joiner_table_03};
For( i = 0, i <= nb_join_tables, i++,
//Open html data table from specific location
dt=Open(
tables_list[i],
HTML Table( 4, Column Names( 0 ), Data Starts( 1 ) )
);
// Set JMP data table name to the desired one
dt << Set Name( names_list[i] );
);SkripterstellungBetreff: JSL_open und Datentabellen aus einer Liste in einer for-Schleife verknüpfenSuper, danke, das funktioniert!!
Betreff: JSL_open und Datentabellen aus einer Liste in einer for-Schleife verknüpfendiesen Code
tables_list = {input_table_01,input_table_02,input_table_03};erstellt eine Liste mit Namen von Variablen, keine Liste mit dem Inhalt der Variablen. Open sieht den Namen der Variablen, in der der Inhalt erwartet wird. Damit können Sie die Namen auf ihren Inhalt hin bewerten:
tables_list = Eval List( {input_table_01,input_table_02,input_table_03} );oder Sie können die Liste wie folgt erstellen:
tables_list = {};
tables_list[1] = input_table_01;
tables_list[2] = input_table_02;
tables_list[3] = input_table_03;Betreff: JSL_open und Datentabellen aus einer Liste in einer for-Schleife verknüpfenHier ist das Protokoll:
ich = 1;
tables_list = {input_table_01, input_table_02, input_table_03, input_table_04, input_table_05, input_table_06};
input_table_01
Das Open-Argument muss beim Zugriff oder bei der Auswertung von „Open“ eine Zeichenfolge sein, Open/*###*/(tables_list[i], HTML Table( 4, Column Names( 0 ), Data Starts( 1 ) ))
Betreff: JSL_open und Datentabellen aus einer Liste in einer for-Schleife verknüpfenFügen Sie kurz vor der Stelle, an der es fehlschlägt, eine Debugging-Anweisung hinzu:
For( i = 0, i <= nb_join_tables, i++,
show(i, tables_list); // check the log window for the output
//Open html data table from specific location
dt=Open(
tables_list[i],
HTML Table( 4, Column Names( 0 ), Data Starts( 1 ) )
);
// Set JMP data table name to the desired one
dt << Set Name( names_list[i] );
);
Betreff: JSL_open und Datentabellen aus einer Liste in einer for-Schleife verknüpfenHallo Craige,
Ich habe es auch mit n=1 versucht und es funktioniert auch nicht. Eigentlich habe ich zunächst i=1 gesetzt und für alle Fälle auf i=0 getestet und vergessen, vor dem Posten noch einmal i=1 zu setzen.
Scheint aber nicht das Problem zu sein.
Irgendeine andere Idee?
Betreff: JSL_open und Datentabellen aus einer Liste in einer for-Schleife verknüpfenJSL-Listen und -Matrizen beginnen bei 1. JMP verwendet for( i = 1, i <= n, i++, ... statt for( i = 0, i < n, i++, .