Wenden Sie das Skript auf mehrere Datentabellen anIch habe ein Skript, in dem ich eine TXT-Datei in JMP als Datentabelle öffne und dann die in Zeile 7 aufgeführten Spaltennamen in die Spaltenüberschriften verschiebe. Wie kann ich dies auf mehrere Datentabellen anwenden? Mein aktuelles Skript funktioniert nicht. Ich habe JMP16. Danke.
dt_list = Multiple File Import(); //additional known text here to open files
table_script = expr(
//Move the column names listed in row 7 to the column headers
dt = Current Data Table();
dt << clear select;
dt << Clear Column Selection();
lastcol = N Col( dt );
header = 7;
For( i = 1, i <= lastcol, i++,
Column( i ) << set Name( Column(i)[header] )
);
);
Eval(
Eval Expr(
For Each( {value, index},
Expr( dt_list[index] << table_script )
)
)
); Automatisierung und SkripterstellungBetreff: Skript auf mehrere Datentabellen anwendenSo würde ich es einrichten
Names Default To Here( 1 );
dt_list = Multiple File Import();
table_script = Function( {dt},
{defaultlocal},
//Move the column names listed in row 7 to the column headers
dt << clear select;
dt << Clear Column Selection();
lastcol = N Col( dt );
header = 7;
For( i = 1, i <= lastcol, i++,
Column( i ) << set Name( Column( i )[header] )
);
);
For Each( {value}, dt_list, table_script( value ) );Betreff: Skript auf mehrere Datentabellen anwendenDanke für deine Antwort! Ich habe Ihr Skript ausprobiert, aber es führt die Funktion „table_script“ nur für die zuletzt geöffnete Datentabelle aus. Haben Sie eine Idee, was das Problem sein könnte? Danke schön.
Betreff: Skript auf mehrere Datentabellen anwendenIch habe die von Ihnen angegebene Feststellung wiederholt und konnte das Problem mit dem von mir gewählten Ansatz nicht beheben.Also bin ich zu Ihrem ursprünglichen Code zurückgekehrt, habe den Ansatz vereinfacht und konnte erfolgreich ein vollständiges Beispiel ausführen.
Names Default To Here( 1 );
rc = Create Directory( "$TEMP/sub1" );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
Close( dt, save( "$TEMP/sub1/MFI big class.jmp" ) );
dt = Open( "$SAMPLE_DATA/body fat.jmp" );
Close( dt, save( "$TEMP/sub1/MFI body fat.jmp" ) );
dt = Open( "$SAMPLE_DATA/candy bars.jmp" );
Close( dt, save( "$TEMP/sub1/MFI candy bars.jmp" ) );
Show( Files In Directory( "$TEMP/sub1" ) );
dt_list = Multiple File Import(
<<SET folder=""></SET>
Betreff: Skript auf mehrere Datentabellen anwendenVielen Dank! Ihr neues Skript hat funktioniert, um Änderungen an allen geöffneten Datentabellen vorzunehmen. Allerdings stellte ich fest, dass mein Skript nicht wie vorgesehen funktionierte und allen Spaltenüberschriften eine „7“ hinzufügte, anstatt Zeile 7 in die Spaltenüberschriften zu verschieben. Zuvor funktionierte es bei einer einzelnen Datentabelle, aber in diesem Fall musste ich meinen Code ändern, um den Tabellenwert tatsächlich an der angegebenen Stelle zu lesen. Hier ist mein Arbeitscode:
Names Default To Here( 1 );
dt_list = Multiple File Import();
table_script = Expr(
//Move the column names listed in row 7 to the column headers
dt = Current Data Table();
dt << clear select;
dt << Clear Column Selection();
lastcol = N Col( dt );
header = 7;
For( i = 1, i <= lastcol, i++,
tableVal = Column( Current Data Table(), i)[ header ];
Column( i ) << set Name( tableVal )
);
);
For Each( {table}, dt_list,
Current Data Table( table );
table_script;
);