データ テーブル内の列に 1 次元ベクトルとして添字を付けることは常に可能でした。JMP 13 では、データ テーブルに 2 次元配列として添字を付けることができます。ここでは、big クラスを使用した例をいくつか示します。(最後の例は、列の添字を示しています。)

dt = Open("$SAMPLE_DATA\Big class.jmp");
// fetch a scalar; neither subscript is a matrix
dt[ 4, "height"]; // 66
// fetch a matrix if either is a matrix, even if 1x1
dt[ [4], "height"]; // [66]
dt[ 4, {height}]; // [66]
// fetch a list if character columns are involved.
// notice the matrix is reversing the order
dt[ 4::2, "name"]; // {"JACLYN", "JANE", "LOUISE"}
// fetch an entire dimension using 0 for a subscript
dt[ 1,0 ]; // {"KATIE", 12, "F", 59, 95}
// fetch by column names
dt[[1,3,5],{height,weight}]; // [59 95, 55 74, 52 64]
// fetch by column numbers in matrix or list
dt[[1,3,5],[2 4 5]]; // [12 59 95, 12 55 74, 12 52 64]
dt[[1,3,5],{2,4,5}]; // [12 59 95, 12 55 74, 12 52 64]
// assignments work too. first, fetch a copy
copydt = dt[0,0]; // make a list of the table's data
// Clear the table
dt[0,0] = .; // all rows and cols are missing
// restore the table
dt[0,0] = copydt;
// reverse two columns, top to bottom and left to right
// (do it again to repair the table!)
dt[1::nrows(dt),{name,sex}] = dt[nrows(dt)::1,{sex,name}];
// set from a matrix
dt[2::3,{age,height,weight}] = [22 70 190, 23 73 200 ];
// column subscripting still works...
dt:name[4::7]; // {"JACLYN", "LILLIE", "TIM", "JAMES"}
データ テーブルの添字により、以前よりもテーブルの操作が簡単になります。単一の (少し複雑な) ステートメントで行や列を交換したり、あるテーブルから別のテーブルにブロックをコピーしたり、行の行列とサブセットを識別する列のリストを使用してテーブルのサブセットから行列を抽出したりできます。
おお!もう 1 つの予想外の JSL の改善。これが信じられない!
これはリストの速度向上よりもさらに優れている可能性があります。
クレイジ@JMP
素晴らしい!、 これにより、「データ テーブル プログラミング」、つまり行列ベースのプログラミングに多くの可能性が開かれます。