列式依存関係サイクルエラーこんにちは、みんな、
どうすればできるか考えてみましょうJSL の循環参照。たとえば、母集団の数量と故障率があります。 ただし、各年の故障率は生き残れるかどうかによって異なります。部品。
年 元の機器が故障した生き残る
1 100 1 99
2 99 2 97
3 97 3 94
JMP では、他の計算式列に依存する式を列に含めることができないことはわかっています。 この場合を回避するトリックはありますか?
ありがとう
ありがとう
自動化とスクリプト作成Re: 列数式の依存サイクルエラーJMP では、他の数式列を使用する数式列を作成できます。

あなたの場合、新しいデータをどのように入力しますか? どの列をどの列に基づいて計算する必要がありますか?
Re: 列数式の依存サイクルエラーご提案ありがとうございます。 これは私がそれを設定する方法ですが、2行に対してのみ反復され、その行だけでは時間がかかります。
New Table( "test",
Add Rows( 7 ),
New Column ("Year", Set Values ([1,2,3,4,5,6,7])),
New Column ("Failure Rate", Set Values ([0.1,0.1,0.15,0.2,0.25,0.3,0.35])),
New Column( "original", Set Values( [100, ., ., ., ., ., .] ) ),
New Column( "failed", formula (:Failure Rate *:original) ),
New Column( "Survive", formula (:original - :failed ))
);
Wait( 2 );
For Each Row(
If( Row() != 1,
:original = Lag( :Survive )
)
);
Re: 列数式の依存サイクルエラー新しい元の列を計算し、それを計算に使用します
Names Default To Here(1);
dt = New Table("test",
Add Rows(7),
New Column("Year", Set Values([1, 2, 3, 4, 5, 6, 7])),
New Column("Failure Rate", Set Values([0.1, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35])),
New Column("original", Set Values([100, ., ., ., ., ., .])),
New Column("failed", formula(:Failure Rate * :original)),
New Column("Survive", formula(:original - :failed))
);
dt << New Column("OriginalF", Numeric, Continuous, Formula(
If(Row() == 1,
:original
,
Lag(:OriginalF) - Lag(:OriginalF) * Lag(:Failure Rate)
);
));
dt << New Column("FailedF", Numeric, Continuous, Formula(
:OriginalF * :Failure Rate;
));
dt << New Column("SurviveF", Numeric, Continuous, Formula(
:OriginalF - :FailedF
));

Re: 列数式の依存サイクルエラージティ。これは参照サイクルを断ち切る非常に賢い方法です。
Re: 列数式の依存サイクルエラー@jthi書きました:
新しい元の列を計算し、それを計算に使用します
その後、古い列名に戻します。
したがって、秘訣は、元の値を計算するために「失敗」を使用しないことです:)
Names Default To Here(1);
New Table( "test",
Add Rows( 7 ),
New Table Variable( "original", 100 ),
New Column( "Year", Numeric, "Continuous", Format( "Best", 10 ), Set Values( [1, 2, 3, 4, 5, 6, 7] ) ),
New Column( "Failure Rate",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values( [0.1, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35] )
)
);
New Column("Original", Numeric, Continuous, Formula(
If(Row() == 1,
:original
,
Lag(:Original) - Lag(:Original) * Lag(:Failure Rate)
);
));
New Column("Failed", Numeric, Continuous, Formula(
:Original * :Failure Rate;
));
New Column("Survive", Numeric, Continuous, Formula(
:Original - :Failed
));
Re: 列数式の依存サイクルエラー面白い、古い車みたい:)
2回目の試行後に開始されるのは良いことです。
あなたの側も同じですか?
New Table( "test",
Add Rows( 7 ),
New Column( "Year", Set Values( [1, 2, 3, 4, 5, 6, 7] ) ),
New Column( "Failure Rate",
Set Values( [0.1, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35] )
),
New Column( "original", Set Values( [100, ., ., ., ., ., .] ) ),
New Column( "failed" ),
New Column( "survive" )
);
start = Function( {},
:survive << set formula(
If( Row() != 1,
:original = Lag( :Survive )
);
:failed = :Failure Rate * :original;
:original - :failed;
)
);
start();
start();
Re: 列数式の依存サイクルエラー元の数量と失敗した値を使用して、すべての値を入力できます。 (*)
したがって、値が入力されるたびにトリガーされるスクリプトを設定できます。
**を一度クリックする必要があります)

...その後、すべてがうまくいきます。
行が追加されるか、入力値 (*) が変更されると、テーブルが更新されます。その他の変更はすべて無視されます。
New Table( "test",
Add Rows( 7 ),
New Column( "original", Set Values( [100, ., ., ., ., ., .] ) ),
New Column( "failed", Set Values( [1, 2, 3, 5, 32, 2, 6] ) ),
New Column( "Survive" )
);
:survive << set Formula(
If( Row() != 1,
:original = Lag( :Survive )
);
:original - :failed;
);
Wait( 0 );
:survive << set Formula(
If( Row() != 1,
:original = Lag( :Survive )
);
:original - :failed;
);
編集:
うーん、前回との違いは分かりませんが、そもそも自動アップデートが機能しません
--> したがって、2 回トリガーするだけです 
「明日は試練が3回も要らないといいのですが…」
編集:
不要行ごとに削除されました。
**)
- このメッセージを取り除く方法はありますか? ->
- 最後の理由は何か考えがあります:生き残るエントリがありません [少なくとも今日は改善されています: もう欠落していません :]
- なぜ今日は数式コマンド 2x が必要なのかわかりますか?