JMP の基本 - 列値を割り当てる方法こんにちは、私は JMP を初めて使います。正方形の座標を定義するデータセットがあります。 列 X には x 方向の座標が含まれ、列 Y には y 方向の座標が含まれます。 データテーブルの角に時計回りにB、C、D、E、正方形の中心にAという名前を付けたいだけで、グラフや画像は作成したくないです。
誰かJSLスクリプトを手伝ってくれませんか?
Re: JMP の基本 - 列値の割り当て方法

あなたが提供した新しいデータは、私が提供した元のスクリプトを作成する際に行った前提を満たしていません。 私は正方形を想定しており、X 座標と Y 座標は極値を調べることによって定義でき、中心点については真の中心 (平均) になります。 また、コーナーが時計回りの順序 (B、C、D、E) になることも指定しました。 上のグラフからわかるように、それももはや真実ではありません。 したがって、私が考えられる唯一の解決策は、コーナーの値をハードコーディングすることです。
Names Default To Here( 1 );
dt = Current Data Table();
If(
Col Number( dt:x1 ) == 5,
dt << New Column( "Corners", Character, values( {"B", "C", "A", "D", "E"} ) ) //
, // Else
Col Number( dt:x1 ) == 6,
dt << New Column( "Corners",
Character,
values( {"B", "C", "A-Bottom", "A-Top", "D", "E"} )
)
);
Re: JMP の基本 - 列値の割り当て方法速やかなご返信ありがとうございます! 私は解決策 1 の方が気に入っており、それが私が探していたものでした。
さらに一歩進むには、データは次のようになり、2 つの異なるシナリオに対して 2 つの条件ステートメントを定義する必要があります。
1. 正方形の中心にAの角が1つしかないデータの場合
2. データの中心に 2 つの点がある場合、それらを A-Top および A-bottom (同じ X 座標を持つ) と呼びます。
データテーブルに存在するデータに応じて、以下のようなコーナーに名前を付けるスクリプトを作成しようとしています(この順序で)。
| X1 | Y1 | コーナー | Y1 | Y2 | コーナー |
| -70 | 29102 | B | -25 | 26338 | B |
| 1569年 | -18 | C | 1615年 | -18 | C |
| 9202 | 15299 | あ | 9264 | 9272 | Aボトム |
| 14784 | 30692 | D | 9264 | 18563 | A-トップ |
| 16424 | 1572年 | E | 15585 | 27929 | D |
| | | | 17226 | 1572年 | E |
スクリプトを共有していただけると助かります。
ありがとう!
Re: JMP の基本 - 列値の割り当て方法実際に何を探しているのかわかりませんが、下の表がそれである場合、表に続くスクリプトがコーナー名を生成します。

Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Corner Name", character );
dt:Corner Name[dt << get rows where( :x == Col Min( :x ) & :y == Col Min( :y ) )] = "B";
dt:Corner Name[dt << get rows where( :x == Col Min( :x ) & :y == Col Max( :y ) )] = "C";
dt:Corner Name[dt << get rows where( :x == Col Max( :x ) & :y == Col Max( :y ) )] = "D";
dt:Corner Name[dt << get rows where( :x == Col Max( :x ) & :y == Col Min( :y ) )] = "E";
dt:Corner Name[dt << get rows where( :x == Col Mean( :x ) & :y == Col Mean( :y ) )] = "A";
// OR
dt << New Column( "Corner Name 2", character );
dt:Corner Name 2[1] = "B";
dt:Corner Name 2[2] = "C";
dt:Corner Name 2[3] = "D";
dt:Corner Name 2[4] = "E";
dt:Corner Name 2[5] = "A";
// OR
dt << New Column( "Corner Name 3", character, values({"B","C","D","E","A"}) );