このバージョンのヘルプはこれ以降更新されません。最新のヘルプは https://www.jmp.com/support/help/ja/15.2   からご覧いただけます。


Remove( Expr( A + B + C + D ), 2 ); // 式A + C + Dになる
b = Substitute( Expr( Log( 2 ) ^ 2 / 2 ), 2, 3 ); // 式Log( 3 ) ^ 3 / 3になる
polynomial = Expr( a * x ^ 2 + b * x + c );
Insert Into( polynomial, Expr( d * x ^ 3 ), 1 );
Show( polynomial );
インプレース関数でない場合には、式を直接記述するか、式を含む変数の名前をNameExprに指定する必要があります。そうした関数は名前の中にFromあるいはInto含みません。このタイプの関数は、第1引数の元のリストや式には直接、変更を加えないで、変更した後のリストや式を戻します。
cubic = Insert( Expr( a * x ^ 2 + b * x + c ), Expr( d * x ^ 3 ), 1 );
 
quadratic = Expr( a * x ^ 2 + b * x + c );
cubic = Insert( Name Expr( quadratic ), Expr( d * x ^ 3 ), 1 );
置換はとても強力な機能です。すでに説明した第 “Substitute(置換)”を参照してください。ここでは、式で置換を行うときの注意点をいくつか説明します。
Substitute(pattern,name,replacement)は、式の名前を置き換えます。
NameExpr()は指定された変数に含まれている式を、評価せずに戻します。
a = Expr(
	Distribution( Column( x ), Normal Quantile Plot )
);
Show( Name Expr( a ) );
Substitute()では引数がすべて評価されるため、引数を正しくクォートする必要があります。
b = Substitute( Name Expr( a ), Expr( x ), Expr( :Name("体重(ポンド)") ) );
Show( Name Expr( b ) );
Name Expr(b) = Distribution(Column(:Name("体重(ポンド)")), Normal Quantile Plot);
SubstituteInto()の場合、第1引数はL-value(左辺に指定できるもの)です。NameExprを用いる必要はありません。
Substitute Into( a, Expr( x ), Expr( :Name("体重(ポンド)") ) );
Show( Name Expr( a ) );
Name Expr(a) = Distribution(Column(:Name("体重(ポンド)")), Normal Quantile Plot);
Substitute()は式の一部を変更するときに便利な関数です。次の例は、Is NumberIs Matrix関数などの複数の関数を用いる例です。
data = {1, {1, 2, 3}, [1 2 3], "abc", x, x( y )};
ops = {is number, is list, is matrix, is string, is name, is expr};
m = J( N Items( data ), N Items( ops ), 0 );
test = Expr(
	m[r, c] = _op( data[r] )
);
For( r = 1, r <= N Items( data ), r++,
	For( c = 1, c <= N Items( ops ), c++,
		Eval( Substitute( Name Expr( test ), Expr( _op ), ops[c] ) )
	)
);
Show( m );
SubstituteInto()を使うと、JMPで2次方程式を求めることができます。次の例では、4x2 - 9 = 0を求めています。
/* 次の方程式の解を求める */
/*        a*x^2 + b*x + c = 0       */
// 2次の式はx=(-b + - sqrt(b^2 - 4ac))/2a
// リストを使って、+-演算の+と-両方の結果を保存する
x = {Expr(
	(-b + Sqrt( b ^ 2 - 4 * a * c )) / (2 * a)
), Expr(
	(-b - Sqrt( b ^ 2 - 4 * a * c )) / (2 * a)
)};
Substitute Into( x, Expr( a ), 4, Expr( b ), 0, Expr( c ), -9 );
// 係数に挿入する
Show( x ); // 置換結果を表示する
Show( Eval Expr( x ) ); // 解を表示する
x = Remove(list |expr)
x = Remove(list |expr, position)
x = Remove(list |expr, {positions})
x = Remove(list |expr, position, n)
指定の場所(position)の項目を削除したリスト(list)または式(expr)を戻す。場所(position)を省略したときは、最後の項目が削除されます。positionをリストで指定することもできます。追加の引数nを指定すると、1つの項目ではなくn個の項目が削除されます。
Remove From(list |expr, position)
Remove From(list |expr)
Remove From(list |expr, position, n)
x = Insert(list |expr, item, position)
x = Insert(list |expr, item)
リスト(list)または式(expr)の指定箇所(position)に項目(item)を挿入する。位置を指定しない場合、文字列は末尾に挿入されます。
Insert Into(list |expr, item, position)
Insert Into(list |expr, item)
Insert関数と同じだが、結果を元の変数に格納する。リスト(list)や式(expr)はL-value(左辺に指定できるもの)でなければなりません。
x = Shift(list |expr)
x = Shift(list |expr, n)
1つまたはn個の項目を、リスト(list)または式(expr)の前から後ろへシフトする。nの値が負のときは、後ろから前へシフトします。
Shift Into(list |expr)
Shift Into(list |expr, n)
x=Reverse(list |expr)
リスト(list)や式(expr)の項目の順序を逆にする。
Reverse Into(list |expr)
リスト(list)や式(expr)の項目の順序を逆にし、結果を元の変数に割り当てる。
x=Sort List(list |expr)
リスト(list)や式(expr)の項目を並べ替える。まず数値を昇順に並べ、その後に名前・文字列・演算子の内部コード順に並べます。たとえば、+(プラス記号)は-(マイナス記号)よりも、文字コードでは前に位置しているので、1+2は1-2より小さいと判断されます。また、{1,2}は{1,3}より小さく、{1,3}は{1,3,0}より小さいと判断されます。{1000}は{"a"}より小さくなりますが、{a}と{"a"}は同じです。
Sort List Into(list |expr)
リスト(list)や式(expr)の項目を並べ替え、その結果を元の変数に割り当てる。
Sort Ascending(list |matrix)
リスト(list)または行列(matrix)の要素を昇順に並べたリストを戻す。
Sort Descending(list |matrix)
リスト(list)または行列(matrix)の要素を降順に並べたリストを戻す。
行列Aの値と行列Bの値が一致する位置を、添え字の行列で作成する。Aは昇順に並べた行列でなければなりません。
R = Substitute(list |expr, Expr(pattern), Expr(replacement), ...)
リスト(list)または式(expr)の中で、指定のパターン(pattern)に一致する部分を検索し、replacement式で置き換える。パターン(pattern)は名前でなければなりません。第2引数と第3引数は適用される前に評価されるため、ほとんどの場合、Expr関数を使って引数をクォートする必要があります。引数の評価を延期するときは、Exprの代わりにName Exprを使います。複数の置換を実行する場合、1つのステートメントでpatternとreplacementのペアを複数指定できます。
Substitute Into(list |expr, Expr(pattern), Expr(replacement), ...)