皆さんこんにちは、
JMP Pro 16.1.0 を実行していますが、JSL のヘルプが必要です。
CSV ファイルのインポートから生成され、次の構造を持つデータ テーブルがあります (実際の列数ははるかに多くなりますが、テーブルはこの構造を維持します)。

仕様表の構造を典型的な形式に正しく変更して、次のようにする方法を見つけようとしています。

最終的に、仕様データ テーブルの列名は JMP 形式に変更されます。つまり、"Column 1"n、"_LSL"n、"_Target"n、および "_USL"n です。 各行は、対応する値を持つ仕様になります。
私が抱えている問題は、プロセスを自動化するためにJSLでこれを行う方法です。 スプリットまたはスタックのさまざまな組み合わせを試しましたが、どちらも実際に行きたい場所に到達できませんでした-少なくとも私がそれらをどのように使用したかではありません. これを行う簡単な方法があると確信していますが、どういうわけか見逃しています。
どんな提案でも大歓迎です。
ありがとう!、
DS
やあ@ジェフ・パーキンソン、
迅速な対応をありがとう、はい、それはまさに私が仕事に就きたいと思っていたものです.
@jthi 、ジェフの返信から、それらを適切な数のシリーズにグループ化すると、列のデータ構造が同じである限り、意図した方法でそれらを積み重ねることができ、列がすべてである必要はないようです同じデータ型。 私の場合、最初の列は常にテキスト列であり、その後に 3 つの数値列が続くことを意味します。
助けてくれてありがとう!、
DS
これは、Tables->Stack を使用した複数シリーズ スタックです。
まずはこの表から。

そして、Tables->Stack to を Multiple Series Stack オプションとともに使用します。

このテーブルを手に入れます。

Label 列を削除するだけで、準備完了です。
拡張ログから取得した JSL は次のとおりです。
// Stack data table
// → Data Table( "untitled 13" )
Data Table( "untitled 11" ) << Stack(
columns(
:c00000 01, :c00000 02, :c00000 03, :c00000 04, :c00000 05, :c00000 06,
:c00000 07, :c00000 08, :c00000 09, :c00000 10, :c00000 11, :c00000 12
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Number of Series( 4 )
);
// Delete columns
Data Table( "untitled 13" ) << Delete Columns(
:Label, :Label 2, :Label 3, :Label 4
);
複数のシリーズスタックを使用する場合、スタックはこれを行うことができるはずだと思います。 データ型はすべての列で同じにする必要があります(少なくともこの方法では)



次に、ラベル列を削除します。 スタック プラットフォームのオプションを変更すると、さらに明確になるかもしれませんが、複数のシリーズ スタックを使用したことはありませんが、非常に強力です。 タグつけます@ジェフ・パーキンソンここでは、彼が何度も使用しているのを見て、私よりも優れた設定をしている可能性があるためです.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(1),
New Column("Column 1", Character, "Nominal", Set Values({"x1"})),
New Column("Column 2", Character, "Nominal", Set Values({"1"})),
New Column("Column 3", Character, "Nominal", Set Values({"1.1"})),
New Column("Column 4", Character, "Nominal", Set Values({"1.11"})),
New Column("Column 5", Character, "Nominal", Set Values({"x2"})),
New Column("Column 6", Character, "Nominal", Set Values({"2"})),
New Column("Column 7", Character, "Nominal", Set Values({"2.2"})),
New Column("Column 8", Character, "Nominal", Set Values({"2.22"})),
New Column("Column 9", Character, "Nominal", Set Values({"x3"})),
New Column("Column 10", Character, "Nominal", Set Values({"3"})),
New Column("Column 11", Character, "Nominal", Set Values({"3.3"})),
New Column("Column 12", Character, "Nominal", Set Values({"3.33"}))
);
// data types must be same for stack, so you might have to script it
dt_stacked = dt << Stack(
columns(
:Column 1, :Column 2, :Column 3, :Column 4, :Column 5, :Column 6, :Column 7,
:Column 8, :Column 9, :Column 10, :Column 11, :Column 12
),
Source Label Column("Label"),
Stacked Data Column("Data"),
Stack By Row(0),
Number of Series(4),
Contiguous
);
For Each({col_name}, dt_stacked << get column names("String"),
If(Contains(col_name, "Label"),
dt_stacked << Delete Columns(col_name)
);
);