毎週更新されるExcelテーブルから列2-無限大からスタックするJMPスクリプト毎週手動で更新しているExcelテーブルがあります。 次に、このテーブルをJMPで開き、列2以降のすべての列をスタックします。 毎週更新するたびに、初期テーブルに列を追加します。 最近、JMPスクリプティングクラスの概要を学びました。毎回最初から再スタックするのではなく、このプロセスを少し自動化することを目指しています。
スタックを実行する前のJMPでのテーブルは次のようになります。

次のようなスクリプトを使用してExcelテーブルをJMPにインポートする方法を知っています。
Open(
"Drive:\Folder\File.xlsx",
Worksheets( "Data" ), // etc.
しかし、私が質問したのは、JMPスクリプトを変更して、列2から最後までスタックするように要求する方法です。
JMPで手動スタックを実行し、ソーススクリプトを確認すると、次のようになります。
Data Table( "Data" ) << Stack(
columns(
:Name( "8/23/2021" ),
:Name( "08/30/2021" ),
:Name( "09/06/2021" ),
:Name( "09/13/2021" ),
:Name( "09/20/2021" ) // etc.
),
Source Label Column( "Failure Group Name" ),
Stacked Data Column( "% Share, Week of" )
);
そして私は私が使用できるFor(関数のフレームワークを持っています:
For( c = 2, i <= N Col(), c++,
//body//しかし、私はそれらを組み合わせる方法がよくわかりません。 どういうわけか、Stack(コマンドをFor(コマンドの中に入れていますか?
助けてくれる人に感謝します!
データ表スクリプティングRe:毎週更新されるExcelテーブルから列2-無限大からスタックするJMPスクリプトStackプラットフォームでは、columns()引数で列のリストを使用できると思います
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cols_to_stack = {"NPN1", "PNP1", "PNP2"};
dt_stacked = dt << Stack(
columns(cols_to_stack),
Source Label Column("Label"),
Stacked Data Column("Data"),
Drop All Other Columns(1)
);したがって、<< Get Column Names(String)を使用して、Excelファイルから作成したデータテーブルから列名のリストを取得し、Remove From()を使用して最初の列を削除します。
Names Default To Here(1);
dt = Open(
"$SAMPLE_IMPORT_DATA/Team Results.xlsx",
Worksheets("Ungrouped Team Results"),
Worksheet Settings(Headers Start on Row(3), Data Starts on Row(4))
);
//all columns
col_names = dt << Get Column Names("String");
//drop first column
Remove From(col_names, 1);
//stack with remaining, won't work exactly like this with this example data, as data types aren't same
//dt_stacked = dt << Stack(...)ヘルプ/スクリプトインデックスを参照し、ここで使用されているさまざまな関数を検索してください。
Re:毎週更新されるExcelテーブルから列2-無限大からスタックするJMPスクリプトこれを処理する1つの方法があります。ところで、あなたのサンプルデータテーブルを開くことができなかったので、私は自分のものを追加しました。
names default to here(1);
dt=data table("Example");
colNames = dt << get column names();
remove from(colNames, 1, 2 );
dt << Stack(
columns( colNames
),
Source Label Column( "Failure Group Name" ),
Stacked Data Column( "% Share, Week of" )
);