こんにちは、みんな
「Rel Interval」、「SrID」、「Pass_Fail」という列があります。最後の列「Updated Pass_Fail_SrID」のスクリプトを作成して生成したいと考えています。すべての SrID は相対間隔「0」および「24」で合格しますが、SrID「B」および「D」は「100」で失敗します。最後の列「Updated Pass_Fail_SrID」を作成して、合格と失敗の参照を取得し、すべてのチェックポイントに合格/失敗を割り当てます。これは、プロット中に分割参照を使用できるようにするためです。

ご指摘をいただければ幸いです。
どうもありがとう
サテジ
以下は、2 番目のテーブルを作成して新しい列を作成し、そのテーブルを操作して、結果を元のテーブルに戻す簡単なスクリプトです。これはスクリプトを使用して行われますが、スクリプトの各ステップは、JMP が得意とするインタラクティブなポイント アンド クリック方式を使用して実行できます。
names default to here(1);
// create the example data table
dt = New Table( "Example 3",
Add Rows( 15 ),
New Column( "Rel Interval",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, 0, 0, 0, 0, 24, 24, 24, 24, 24, 100, 100, 100, 100, 100] )
),
New Column( "Sr ID",
Character( 8 ),
"Nominal",
Set Values(
{"A", "B", "C", "D", "E", "A", "B", "C", "D", "E", "A", "B", "C", "D",
"E"}
)
),
New Column( "Pass_Fail",
Character( 8 ),
"Nominal",
Set Values(
{"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Fail", "Pass", "Fail", "Pass"}
)
)
);
wait(3); // this is added just so the viewer can see the original data table
// Split the Pass Fail column into 2 columns
dtSplit = dt << Split(
Split By( :Pass_Fail ),
Split( :Pass_Fail ),
Group( :Sr ID ),
Remaining Columns( Drop All ),
Sort by Column Property
);
wait(2);
// Create a new column that has a formula that will set the Pass or Fail value
dtSplit << New Column("Updated Pass_Fail_SrID", character, formula(Word( 1, :Fail || "," || :Pass, "," )));
wait(2);
// convert the formula column into static values
dtSplit:Updated Pass_Fail_SRID << delete formula;
wait(2);
// Delete no longer wanted columns
dtSplit << delete columns("Fail","Pass");
wait(2);
// Update the original data table with the information from the split table
dt << Update(
With( dtSplit ),
Match Columns( :Sr ID = :Sr ID )
);
これをインタラクティブに行う手順は次のとおりです
- Rel Interval、Sr ID、および Pass_Fail 列を含むデータ テーブルをクリックして、データ テーブルを現在アクティブなデータ テーブルにします。
- プルダウン メニューに移動し、Tables==>Split を選択します。
- Pass_Fail 列と「Split By」の選択肢を設定し、「Split Columns」の選択肢としても設定し、Sr ID 列を「Group」の選択肢として設定します。
- [OK] をクリックします。
- 作成された新しいデータ テーブルに移動します。
- 「」という名前の新しい列を作成します更新された Pass_Fail_SrID 」を作成し、データ型を「文字」にします
- 列ヘッダーを右クリックし、[式] を選択します。
- 式ウィンドウで、式を入力しますWord( 1, :不合格 || "," || :合格, "," )この数式は、Fail と Pass の 2 つの列を連結し、値の間にコンマを配置します。次に、Word() 関数を使用して、連結されたリストの最初の単語を選択します。Fails を持たない行は最初の単語として Pass の値を持つため、結果の値は正しい値を設定します。
- [OK] をクリックします。
- 次に、新しい列の [列情報] ダイアログ ウィンドウに移動し、列のプロパティ [式] をクリックしてから、[削除] をクリックします。これにより、新しい列の値が計算値ではなく静的な値に変換されます。
- Pass 列と Fail 列を削除します。それらはもう必要ありません。
- 元のデータ テーブルに戻り、プルダウン メニューに移動して [Tables==Update] を選択します。
- 更新を取得するために使用するテーブルとして、新しい列が作成されたルックアップ テーブルを選択します。
- 「列を一致させる」のチェックボックスをオンにします
- 両方のデータ テーブルから Sr ID を選択し、Match ボタンをクリックします。
- [OK] をクリックすると、元のデータ テーブルに新しい列が追加されます。
こんにちは。
最も簡単な解決策は、Pass_Fail 列を Fail = 0 および Pass = 1 の Continuous 数値列として再コード化することです。 次に、Sr ID ごとに最小値を探して、いつでも Sr ID のいずれかが失敗したかどうかを判断できます。
添付のこのソリューションを参照してください
一番、
TS