Cycles Detected는 내 작업에서 큰 문제입니다.JMP 커뮤니티 여러분, 안녕하세요.
"주기 감지"는 순환 행 방식이 아닌 비즈니스 규칙을 시뮬레이션하기 때문에 자주 발생하는 주요 문제입니다. 그러나 JMP는 Excel처럼 매우 간단한 행별 종속성을 처리할 수 없습니다. 솔직히 말해서 저는 JMP가 스프레드시트가 아니라는 말을 듣는 것을 좋아하지 않습니다. 아마도 상당수의 사용자가 이런 종류의 문제를 겪었을 것이라고 생각하기 때문입니다. 데이터가 기록(예: 날짜/시간)별로 분류되고 이전 기록이 대상이 되므로 저는 이 문제와 끊임없이 싸우고 있습니다. 행별 작업을 더 쉽게 처리할 수 있도록 하고 싶지 않다면 JMP가 지연 기능을 제공하는 이유는 무엇입니까(그리고 훌륭합니다. 저는 이 기능을 계속 사용합니다). 그러나 그렇게 하면 문제가 발견된 주기가 열리고 다시 스프레드시트 사고 방식으로 충돌이 없습니다. Excel에서는 쉽게 처리할 수 있지만 JMP에서는 그렇지 않습니다. 나는 Pro 라이센스를 보유하고 있으며 이와 같은 피드백을 고위 경영진에게 보내는 것은 솔직히 좋지 않을 것입니다. 제가 보기에 JMP Pro의 가장 큰 장점은 빅데이터에 대한 복잡한 모델링, 데이터 과학, 기계 학습의 사용자 친화적인 능력입니다. 현재 설명된 문제는 도구의 사용자 편의성에 대한 문제입니다. 다른 작업을 할 수 없으면 JMP에서 내보내 Excel로 작업을 수행해야 합니다(번거로움).
이 게시물에서 내 의도는 다음과 같습니다.
1- 개발자의 관심을 끌기 위해 내가 할 수 있는 일이 있습니까?
예: 나는 "오류 무시"와 "모든 주기 무시"를 독립적으로 시도했습니다. 이 방법이 필요한 검사를 우회하여 공식이 실행될 수 있을 것으로 예상했습니다(그렇지 않았습니다).
2- 사용할 수 있는 수식 기반 접근 방식(스크립트라도 수식에 포함되어야 함)이 있습니까? 아래에 샘플 2개를 첨부합니다. 동일한 계산입니다. 하나는 JMP이고 다른 하나는 xls입니다.
A는 무료 입력 열입니다.
B는 레코드 = 1에 대해 A로 초기화한 다음 C에 따라 A 또는 B의 이전 값(즉, 지연 함수를 사용하는 자체)입니다.
C는 A입니다 - B의 이전 값
감사해요.
품질 및 프로세스 엔지니어링답변: Cycles Detected는 내 작업에 있어 주요 문제입니다.실제 매개변수는 이 간단한 예에 표시된 것보다 더 복잡했습니다. Julian의 솔루션은 똑같이 수용 가능하지만 모든 복잡성을 단일 공식에 넣는 것은 너무 많은 일이라고 생각하므로 Craige의 스크립트를 사용했습니다(작동했습니다).
JMP 개발자에게 메모를 보내서 (1) "오류 무시" 및 "모든 주기 무시"의 요점을 명확히 할 수 있도록 하려고 합니다. 다시 한 번 말하지만, 주기 감지 문제를 우회할 수 있는 것처럼 들리지만 그들은 분명하게 설명합니다. 하지 않았다. (2) 실제 순환이 존재하지 않는 경우 JMP에 우회 옵션을 추가하는 것을 고려할 수도 있습니다.
답변: Cycles Detected는 내 작업에 있어 주요 문제입니다.이 스크립트는 Excel 테이블과 동일한 답변을 생성하며 열 수식과 매우 유사합니다.
dt = Open( "/Z:/cyclic_error_sample.jmp" );;
dt:b<<DELETEFORMULA> 1,
dt:a - lag(dt:b);//
,//
.
);
dt:b = If( dt:record == 1,
dt:a;//
, //
If( dt:c < 1.5,
dt:a;//
, //
lag(dt:b)
)
);
);</DELETEFORMULA>
열별로 평가하는 JMP 열 공식과 달리 스크립트는 B 평가보다 행별로 C 평가를 배치합니다. C가 B의 이전 행에만 의존하기 때문에 C가 먼저 평가해야 한다는 것을 확인하는 데 잠시 시간이 걸렸습니다. 그런 다음 B는 현재 행에 대해 방금 계산한 C 값에 의존하기 때문에 평가할 수 있습니다.
좀 더 연구해 보면 다음과 같이 C 수식을 dt:C 대신 B열에 복사하면 됩니다.
Removes the reference to column CRemoves the reference to column CC 열에 대한 참조를 제거합니다.
실제로 필요하지 않은 경우 C 열을 삭제할 수 있습니다. 또한 다시 실행해야 하는 첫 번째 스크립트와 달리 열이 자동으로 업데이트된다는 의미이기도 합니다.
답변: Cycles Detected는 내 작업에 있어 주요 문제입니다.안녕 @altug_bayram ,
이는 작업 중에 항상 직면하게 되는 매우 실망스러운 문제인 것 같습니다! 나는 "모든 주기 무시"가 말한 대로 해야 한다는 점에 동의하고 JMP에 실제로 종속성이 없다고 주장하므로 공식을 진행하도록 놔두십시오. 이는 결함처럼 들리며 이를 개발자에게 알리는 가장 좋은 방법은 이메일을 보내는 것입니다. support@jmp.com 여기에 있는 문제를 설명합니다.
해결 방법으로 수정 사항은 모습 C열의 전체 수식을 복사하고 C에 대한 참조를 B열의 해당 수식으로 대체하여 종속성을 제거합니다.

If( :Record == 1,
:A,
If( If( :Record > 1, :A - Lag( :B, 1 ), . ) < 1.5,
:A,
Lag( :B, 1 )
)
)
C에 대한 수식을 그대로 유지하면 테이블이 제대로 채워질 것입니다. 이는 단일 공식에서 B에 대한 열 공식의 B에 대한 참조가 Lag()를 통해 발생한다는 것이 JMP에 분명하기 때문에 주기에 대한 경보를 발생시키지 않습니다. 수식이 다른 열에 있는 경우 주기 감지에서 Lag()를 고려하지 못하고 B가 B를 참조하는 C를 참조하는 것으로 보입니다.

"모든 주기 무시"가 수정될 때까지 이것이 귀하의 작업에 도움이 되기를 바랍니다!
@줄리안