スクリプトを複数のデータテーブルに適用するJMP で txt ファイルをデータ テーブルとして開き、行 7 にリストされている列名を列ヘッダーに移動するスクリプトがあります。 これを複数のデータテーブルに適用するにはどうすればよいですか? 現在のスクリプトが機能しません。 JMP16を持っています。 ありがとう。
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 )
)
)
); 自動化とスクリプト作成Re: 複数のデータテーブルにスクリプトを適用するこれが私がそれを設定する方法です
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 ) );Re: 複数のデータテーブルにスクリプトを適用するお返事をありがとうございます! スクリプトを試してみましたが、最後に開かれたデータテーブルに対して table_script 関数が実行されているだけです。 何が問題なのかわかりますか? ありがとう。
Re: 複数のデータテーブルにスクリプトを適用するあなたが指摘した結果を再現しましたが、私が取っていたアプローチでは問題を修正できませんでした。そこで、元のコードに戻り、アプローチを簡素化し、完全な例を実行することに成功しました。
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>
Re: 複数のデータテーブルにスクリプトを適用するどうもありがとうございます! 新しいスクリプトは、開かれているすべてのデータ テーブルを編集するように機能しました。 しかし、スクリプトが意図したとおりに動作せず、行 7 を列ヘッダーに移動するのではなく、すべての列ヘッダーに「7」を付加していることがわかりました。 以前は単一のデータテーブルで動作していましたが、この場合は、指定された場所にあるテーブル値を実際に読み取るようにコードを変更する必要がありました。 私の作業コードは次のとおりです。
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;
);