수식 만들기여러분 안녕하세요.
수식을 사용하여 X_9 및 X_10 열을 어떻게 계산할 수 있습니까?
X_9의 경우 :
X_1 = X_1-> X_7 (행 1) -X_8 = X_9
X_9-X_8
X_10의 경우 :
X_1 = X_1-> X_10 (Row1) = X_9-X_8 인 동안
X_9 + X_8
당신의 도움을 주셔서 대단히 감사합니다!
다시 : 수식 만들기이런 종류의 질문은 여러 번 요청되었습니다. 이 문제를 해결하는 데 도움이되는 정보를 찾기 위해 과거 토론을 먼저 검색 했습니까?
수식을 사용하지 않을 것입니다 동안() 함수. 아마도 만약() 함수. 또한 참조 지연() 함수.
기능이 문서화되어 있습니다. 참조하십시오 도움말> JMP 설명서 라이브러리> JMP 사용 . 공식과 기능에 관한 장이 있습니다. 참조하십시오 도움말> 스크립팅 색인 . 이 브라우저를 표시하도록 설정 기능 (왼쪽 상단 풀다운 메뉴)를 검색 한 다음 만약 과 지연 .
다시 : 수식 만들기죄송합니다. X_0 및 X_10에 필요한 사항에 대한 귀하의 표기법을 해석 할 수 없습니다. 서면으로 설명 할 수 있습니까?다시 : 수식 만들기여보세요,
답변 주셔서 감사합니다.
나는 당신이 지금 그것을 이해할 수 있기를 바랍니다.
친애하는.
X_1 열의 행이 변경되지 않는 한
->는 X_9 = X_7 빼기 X_8 열에서 계산해야합니다.
X_1 열의 행이 변경되지 않는 한
-> X_8 열이 X_10 열에 추가됩니다.
다시 : 수식 만들기여기 내 해결책이 있습니다 : X__9 공식은
If( Row() == 1, sumX__8 = 0 );
If( :X__1 != Lag( :X__1 ),
sumX__8 = 0
);
sumX__8 = sumX__8 + :X__8;
:X__7 - sumX__8;
X__10 공식은
If( Row() == 1, theSum = 0 );
If( :X__1 != Lag( :X__1 ),
theSum = 0
);
theSum = theSum + :X__8;
theSum;
수식이 적용된 데이터 테이블이 첨부 됨
다시 : 수식 만들기여보세요,
이거 정말 멋져요!
대단히 감사합니다!
나는 곧 공식을 사용하는 방법을 이해하기를 희망합니다
... 혼자서 할 수 있습니다.
즐거운 저녁 / 오후 (?) 바랍니다.
다시 : 수식 만들기안녕하세요, txnelson,
나는 당신의 공식을 올바르게 이해합니까?
X_9의 공식
Row = 1이면 합 X_8 = 0
X_1이 같지 않음 (?! = 지연) X_1로 보낸 다음 sumX_8 = 0
그렇지 않으면 sumX_8 = sumX_8 + X_8
및 X_7-sumX_8
에 대한 공식 X_10
Row = 1이면 the Sum = 0
X_1이 같지 않음 (?! = 지연 ) X_1
theSum = 0
그렇지 않으면 theSum = TheSum + X_8
합계 작성
이것이 올바르게 해석 되었습니까?
맑은 인사와 건강 유지!
다시 : 수식 만들기


이것은 잘못이다 ....
안녕하세요, 공식을 직접 만들려고합니다.
그 아래에 있으면 어떻게해야합니까?
당신의 도움을 주셔서 감사합니다.
다시 : 수식 만들기X__9에 대한 해석이 올바르지 않습니다. 작동 방식을 설명하려고합니다.
해석에 도움이되는 JMP의 공식에 대해 3 가지 항목을 이해해야합니다.
- JMP는 행 1부터 데이터 테이블의 각 행에 대한 공식을 실행합니다. 그리고 Row () 함수는 JMP가 현재있는 행을 반환합니다.
- 수식에서 원하는만큼 메모리 변수 (예 : sumX__8)를 만들 수 있으며 수식에서 변경 될 때까지 행에서 행까지 값을 유지합니다. 이것은 공식의 열쇠 중 하나입니다. 이 변수는 새로운 X__1 값이 관찰 될 때까지 행에서 행으로 X__8의 값을 합산합니다. 그런 경우 sumX__8은 다시 0으로 설정됩니다.
- 주어진 행에 대한 공식에서 마지막으로 계산 된 결과는 데이터 테이블의 행에 대해 표시 될 값입니다.
따라서 X__9 열의 공식 해석은 다음과 같습니다.
행 1
Row ()가 1이면 메모리 변수 sumX__8을 0으로 설정하십시오. 이것은 true입니다. Row ()는 1이므로 sumX__8은 0의 값으로 초기화됩니다. 메모리 변수 sumX__8은 X__1 그룹 내에서 X__8의 누적 합계를 계산하는 데 사용됩니다.
행 1의 X__1 값이 X__1의 이전 (래그) 값과 같지 않으면 sumX__8의 값을 0으로 설정하십시오. X__1의 이전 값이 없으므로 계산이 수행되지 않습니다. sumX__8은 현재 값인 0으로 유지됩니다.
다음 줄 ( sumX__8 = sumX__8 + : X__8; )이 실행되어이 행의 누적 합계를 설정합니다. sumX__8의 현재 값인 0을 취하여 행 0에 대한 X__8 값을 더합니다 (0의 결과에 대해 0). 참고 :이 코드 줄은 이전 IF () 함수에 대한 "그렇지 않은"계산이 아닙니다. 이 코드 줄은 모든 행에 대해 실행됩니다.
다음 코드 줄 (: X__7-sumX __ *)은 계산 행 1의 X__7 (20) 인 행을 계산하고 X__7 (sumX__8 값은 0)의 누적 합을 빼고 20-0 또는 20의 값을 갖습니다. 이것이 공식의 행 1에 대한 마지막 계산이므로이 값은 X__9에 대한 행 1의 값으로 끝납니다.
2 열
Row ()가 1이 아니므로 sumX__8 = 0의 결과 코드가 실행되지 않습니다
X__1의 행 2의 값은 1000이며 이는 X__1의 이전 (래그) 값과 동일하므로 결과 코드가 실행되지 않습니다.
sumX__8은이 행에 대해 계산되며 결과는 0 인 sumX__8의 현재 값이며, 0의 결과에 대해 행 2의 X__8의 값에 추가됩니다.
X__9에 대한 행 값은 20 인 X__7의 행 2s 값으로 계산되며 결과 값 20에 대해 sumX__8의 현재 값을 0으로 뺍니다.
이 프로세스는 행마다 계속됩니다. 9 행에는 0이 아닌 X__8 값이 나타나므로 sumX__8의 값은 1의 값에 대해 0 + 1이됩니다. 행 10은 sumX__8 등에 하나 더 추가합니다.
다음으로 중요한 행은 20 행입니다. 이 행에 대한 공식을 실행하는 동안 IF () 함수 "If (: X__1! = Lag (: X__1)")는 true입니다. : X__1은 1001과 같고 X__1의 이전 (지연) 값은 1000이므로 sumX__8의 결과 코드는 0으로 설정되므로 누적 합계가 다시 시작됩니다.
해석이 다음과 같이 변경되었습니다.
X_9의 공식
Row = 1이면 합 X_8 = 0
X_1이 이전 값과 같지 않음 X_1 다음 sumX_8 = 0
sumX_8 = sumX_8 + X_8
X__9는 X_7-sumX_8로 계산됩니다.
X__10의 공식은 X__9와 거의 동일하므로 해석을 사용하면 내 수정 사항은 다음과 같습니다.
에 대한 공식 X_10
Row = 1이면 theSum = 0
X_1이 이전 값과 같지 않음 X_1 theSum = 0
theSum = TheSum + X_8
변수 theSum의 값을 참조하여 X__10이 설정됩니다.
다시 : 수식 만들기복잡한 수식은 수식 작성자를 사용하여 만들기가 매우 어렵습니다. 제 경험에 따르면 여러 줄의 계산을 할 경우 Formula Creator 내에서 스크립트 편집기를 사용합니다.
"공식 없음"이라는 문구가있는 상자를 두 번 클릭하면

한 줄에 입력 할 수있는 입력 상자가 표시됩니다.

하지만 상자의 오른쪽 상단에있는 개체를 클릭하면

전체 스크립트를 쉽게 입력 할 수있는 스크립트 편집기가 표시됩니다.
