再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?ジムに感謝します!
それで私がそれについて考えるつもりである最初の方法はあなたが連続してたくさんのデータを持っているとき、あなたはそれをより速くするためにメモリを使うことができる。再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?そして私はあなたにもう一度尋ねるつもりです、私は最初の方法を試みました、そして、結果がありません。私がどこを間違えたかわかりません、ありがとう!再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?最初のコード操作の結果
ありがとうございました!

再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?私があなたが言うときあなたが何を意味するかについて少し混乱しています」 補助列を追加せずに直接取得 "; 2つの簡単なスクリプトをまとめました。 最初のものは、結果を生成するために不要な列を作成しないという点で、ステートメントに厳密に準拠しています。 ただし、この方法は非効率的であり、データテーブルが大きくなってもあまり効率的に拡張できません。
Names Default To Here( 1 );
d1 = Open( "$SAMPLE_DATA/Trial1.jmp" );
d2 = Open( "$SAMPLE_DATA/Trial2.jmp" );
// Create the new column by comparing values between the data tables
d2 << New Column( "Result",
formula(
compare = d1:yield[((d1 <<
get rows where(
d1:popcorn == d2:popcorn & d1:oil amt == d2:oil amt &
d1:batch == d2:batch ))[Row()])];
If( compare > d2:yield[Row()],
theResult = 1,
theResult = 0
);
theResult;
)
);
// Change the values of the column Result to static values by removing
// the formula
d2:Result << delete property( "formula" );
2番目の例は非常に効率的ですが、一時的な追加の列を使用しますが、結果は同じになります。
Names Default To Here( 1 );
d1 = Open( "$SAMPLE_DATA/Trial1.jmp" );
d2 = Open( "$SAMPLE_DATA/Trial2.jmp" );
// Temp. change of the name of the Yield column in data table 1
d1:yield << set name("yield1");
// Copy the Yield1 column to data table 2
d2 << Update(
With( d1 ),
Match Columns( :popcorn = :popcorn, :oil amt = :oil amt, :batch = :batch ),
Add Columns from Update table( :yield1 )
);
// Change the Yield1 column in data table 1 back to it's original name
d1:yield1 << set name("yield");
// Create and calculate the Result column in data table 2
d2 << new column("Result", formula(
If(:yield1 > :yield, 1,0);
));
// Change the values of the column Result to static values by removing
// the formula
d2:Result << delete property( "formula" );
// Delete the no longer needed Yield1 column
d2<<DELETE columns=""></DELETE>
補助列を追加せずに直接比較結果を取得する方法を教えてください。みなさん、こんにちは!
同じ仕様の2つの表の歩留まりは異なります。
補助列を追加せずに直接比較結果を取得できます。
結果が表2に得られる。表1の収率が表2の収率よりも大きい場合、結果は1である。それ以外の場合、結果は0です。
d1 = Open( "$SAMPLE_DATA/Trial1.jmp" );
d2 = Open( "$SAMPLE_DATA/Trial2.jmp" );
ありがとうございます。
再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?JMPログにはどのようなメッセージがありますか?
また、最初のメソッドのコードの最後の行にミスコピーがありました
" 二番目"
見逃してコピーしました。 コードに含まれていないことを確認してください。
再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?無効な添え字(数字または数字のリストでなければなりません){(d1 << <<行を取得します。batch == d2:batch))[Row()] '、(d1 <<ここで、行を取得する(
d1:ポップコーン== d2:ポップコーン&d1:オイル量== d2:オイル量&d1:バッチ== d2:バッチ
))[/*###*/行()]
ジムに感謝します!

再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?それは間違いだと思われる
再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?私は何を言うべきかわからない。私はJMP ProでJMP 11までずっとコードを実行してきましたが、失敗することはありません。私はWindow 10の上で走っています
矛盾をさらに調査するには、これをJMPサポートに連絡する必要があります。再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?そうですか。ジムに感謝します!再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?これはまた別のアプローチです。これは行列を使います。行列とデータテーブルの間にはいくつかの仮定がありますが、興味があれば始めてみるのに十分なものにしてください。
Names Default To Here( 1 );
sourceTable = Data Table( "Trial1" );
resultsTable = Data Table( "Trial2" );
convertToMatrix = Function( {dt},
{Default Local},
mtrx = dt << get all columns as matrix;
numberOfColumns = N Col( mtrx );
For( i = 1, i <= numberOfColumns - 1, i++,
mtrx[0, i] *= 10 ^ (i - 1);
If( i > 1,
mtrx[0, i] = mtrx[0, i] + mtrx[0, i - 1]
);
);
mtrx[0, 1 :: numberOfColumns - 2] = [];
mtrx;
);
sourceMatrix = convertToMatrix( sourceTable );
resultsMatrix = convertToMatrix( resultsTable );
numberOfResults = N Row( resultsMatrix );
results = J( numberOfResults, 1, 0 );
For( i = 1, i <= numberOfResults, i++,
key = sourceMatrix[i, 1];
value = sourceMatrix[i, 2];
index = Loc( resultsMatrix == key ) + 1;
results[Floor( index / 2 )] = resultsMatrix[index] < value;
);
resultsTable << New Column( "Result", numeric, "continuous", values( results ) );再:どうすれば補助列を追加せずに直接比較結果を得ることができますか?このメモリアレイの使い方を学びます。ありがとうございました。