열 수식 종속성 순환 오류안녕하세요 여러분,
우리가 어떻게 할 수 있을지 궁금해 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: 열 수식 종속성 순환 오류 jthi.이는 참조 순환을 깨는 매우 영리한 방법입니다.
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: 열 수식 종속성 순환 오류낡은 차처럼 재밌어요 
두 번째 시도 후에 시작하는 것이 좋습니다.
당신 쪽도 마찬가지야?
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;
);
편집하다:
흠 지난번과 차이점은 모르겠지만 지금은 자동 업데이트가 처음에는 안되네요
--> 그러니 두 번만 실행하세요. 
[내일은 3번의 시련이 필요하지 않기를...]
편집하다:
불필요한 각 행에 대해 제거됨.
**)
- 이 메시지를 없애는 방법을 아시나요? ->
- 왜 마지막인지 아시나요? 생존하다 항목이 누락되었습니다. [적어도 오늘은 이것이 더 좋습니다. 더 이상 누락되지 않습니다.]
- 오늘 왜 공식 명령 2x가 필요한지 아시나요?