値の最後の 3 文字に基づく注文レベルやあ -
プロットの x 軸の値の順序を昇順にしたいと思います。 問題は、これらの値が英数字の文字列であり、最後の 3 文字のみが順序を示すことです。
たとえば、プロットの左から右に次の順序でこれらを表示したいと思います。
1: YRFCA1
2: YRTCB1
3: YRACB2
4: YRTCC0
行と値の順序レベルは、データを異なる方法で配置しました。
上記の値の部分文字列を実行して、注文する前に最後の 3 文字だけに焦点を当てることはできますが、プロットに 6 文字の文字列全体を表示する方法がわかりません。
これをJSLでどのように実装できるかについてのご意見をお待ちしております。
ありがとう!
スクリプティングRe: 値の最後の 3 文字に基づく注文レベルまた、JSL を介して非数値列の順序付けを JMP に「強制」することもできますが、これは機能ではなくバグである可能性があるため、使用するのは少し危険です。
Names Default To Here(1);
dt = New Table("table",
Add Rows(5),
New Column("Col", Character, "Nominal", Set Values({"YRFCA1", "YRTCB1", "YRACB2", "YRTCC0", "YAAAA4"})),
New Column("order", Character, "Nominal", Formula(Right(:Col, 3)))
);
dt = Graph Builder(Variables(X(:Col, Order By(:order, Ascending))), Elements(Points(X, Legend(34))));
2 つの x 軸ラベル行を使用して、グラフ ビルダーから直接行うこともできます。

次に、必要に応じて x 軸の設定を開き、他のラベルの設定を変更して非表示にすることができます (この場合は順序):

そして、あなたは次のようになります:

次に、x 軸を変更して / の順序を削除できます。
Re: 値の最後の 3 文字に基づく注文レベルどちらの方法も非常に役立ちます。 クレイジとZFに感謝します!
Re: 値の最後の 3 文字に基づく注文レベル良い!
Re: 値の最後の 3 文字に基づく注文レベル最後の 3 文字でテーブルを並べ替え (最初に最後の 3 文字の部分文字列を取得)、長いテキスト列のプロパティ "値の順序" を設定します。
Names default to here(1);
dt=New Table( "order by another col",
Add Rows( 4 ),
New Column( "Label",
Character,
"Nominal",
Set Values( {"YRFCA1", "YRTCB1", "YRACB2", "YRTCC0", "YAAAA4"} )
),
New Column( "Last 3",
Character,
"Nominal",
Formula( Right( :Label, 3 ) ),
),
);
dt << sort(replace table(1), by(:Last 3));
values=dt:Label << get values;
dt:Label << set property ("Value Ordering", values);
Re: 値の最後の 3 文字に基づく注文レベル多分このようなもの。 GUI で変換列を作成し、保存しました。 変換する変数を (列セレクターで) 右クリックし、[変換] -> [式] を選択します。 次に、新しい変換変数をグラフ ビルダーにドラッグ アンド ドロップします。
Graph Builder(
Size( 893, 823 ),
Show Control Panel( 0 ),
Variables(
X( :name ),
Y(
Transform Column(
"Transform[name]",
Character,
Nominal,
Formula(
Right( :name, 3 ) || "_" || Left( :name, Length( :name ) - 3 )
)
)
)
),
Elements( Points( X, Y, Legend( 8 ) ) )
);
Last three letters moved to front of nameLast three letters moved to front of name最後の 3 文字を名前の前に移動