수식 편집기: 첨자 함수를 동적으로 사용하는 데 도움이 됩니다.안녕하세요 여러분,
데이터 테이블의 행들을 일반화 가능한 방식으로 비교하려고 합니다. 이를 위해 특정 조건을 만족하는 특정 행의 값을 찾아 반환하는 수식 열을 만들고 싶습니다.
sowiakg_1-1788989884725.pngsowiakg_1-1788989884725.pngsowiakg_1-1788989884725.png
이 예시 스크린샷에서 "제어 결과" 열을 "기증자" 필드와 일치하는 "제어" 행과 해당 "결과" 점수를 반환하는 수식 열로 만들고 싶습니다. 이를 위해 수식 편집기를 사용하고 싶으며, 다른 행의 데이터를 반환하는 가장 직관적인 방법은 첨자를 사용하는 것이라고 생각합니다.
하지만 "i = 그룹과 조건이 'Control'인 가장 낮은 행"과 같은 논리를 어떻게 제대로 구현해야 할지 잘 모르겠습니다. "i = X 조건을 만족하는 행 번호"를 반환하는 데 사용할 수 있는 수식 블록(또는 그 조합)은 무엇일까요? 혹시 byVar를 사용하는 방법이 있을까요?
덧붙여 말씀드리자면, `Match` 함수도 하나의 옵션이라는 것을 알고 있습니다. 하지만 이 함수는 각 그룹별로 수식 블록 자체에 "제어" 값을 직접 입력하거나 (또는 사용자 지정 첨자 호출을 통해) 입력해야 하는 것 같습니다. 저는 훨씬 더 큰 데이터 세트에 이 워크플로를 적용하려고 하는데, 하드코딩된 값을 최소화하고 싶습니다. 또한 코딩 경험이 없는 협업자들과 함께 작업하는 경우가 많아 JSL 사용을 피하고 싶고, 수식 편집기를 사용하여 필요에 따라 조건 및 결과 필드만 교체하면 되는 방식을 선호합니다.
감사합니다!
제목: 수식 편집기: 첨자 함수를 동적으로 사용하는 데 도움 요청제가 생각해낸 공식은 다음과 같습니다.
Col Cumulative Sum( If( :Condition == "Control", :Result ), :Group )
txnelson_0-1789008517877.pngtxnelson_0-1789008517877.png
제목: 수식 편집기: 첨자 함수를 동적으로 사용하는 데 도움 요청Col At() 함수는 JMP19에 추가되었으며, 그룹 내 특정 인덱스의 값을 검색할 수 있게 해줍니다. 따라서 제어 행이 항상 테스트 행보다 앞에 있는 경우(3번째 열이 결과, 1번째 열이 그룹) 이 함수를 사용할 수 있습니다.
Col At(:Column 3, 1, :Column 1)
jthi_0-1789014294613.png
스크립팅 인덱스에 더 많은 예제가 있습니다.