기본 값의 위치를 기준으로 상대 값을 계산하는 방법은 무엇입니까?모두들 안녕,
열 값의 백분율 점유율을 계산해야 합니다. 값1 열에서 선택한 값의 위치를 기준으로 값1 . 예를 들어 열의 두 번째 값을 기반으로 하려는 경우 값1 (위치 2 또는 값 2), 결과 열 값1_rel 상대 값은 다음과 같아야 합니다.

또한 항목별로 그룹화해야 하는 더 많은 데이터가 있을 수 있으며 각 항목에 대해 다른 모든 값에 대한 백분율 점유율(정규화 또는 상대 값은 다소 혼란스러운 용어일 수 있음)을 계산할 수 있습니다. 어떻게 할 수 있습니까? 설명이 부족해도 이해해주시고 편하게 문의주세요.
감사합니다
결과 공유 및 소통Re: 기본 값의 위치를 기준으로 상대 값을 계산하는 방법은 무엇입니까?안녕 브래디,
원래 질문에 이미 답변이 있더라도 이것이 허용되기를 바랍니다.
나는 lukasz와 비슷한 문제가 있으며 내 문제에 맞게 귀하의 (매우 좋은) 답변을 조정하려고 노력했습니다.
기본적으로 하나의 열을 자체적으로 나누려고 하지만 두 번째(또는 kth)를 참조로 사용하지 않고 대신 참조 지점을 찾는 데 사용할 레이블이라는 세 번째 열이 있습니다. 내가 가진 문제는 내 경우에 "by-loop"가 작동하는 방법을 알 수 없다는 것입니다. 이제 내 스크립트는 모든 값을 "big"이라는 이름의 첫 번째 값으로 나누는 것입니다(이유는 이해하지만 그것을 고치는 방법이 아닙니다).
c << new column("Rel", numeric, continuous, formula(
Eval(
Eval Expr(
:Val[(:Group << get data table) << get rows where(
label == "big" & :Group == Expr( :Group[Row()] )
)] / :Val
)
));
)
/ V
Re: 기본 값의 위치를 기준으로 상대 값을 계산하는 방법은 무엇입니까?안녕하세요 Brady, 코드와 설명에 대해 대단히 감사합니다. 완벽하게 작동합니다. 친애하는Re: 기본 값의 위치를 기준으로 상대 값을 계산하는 방법은 무엇입니까?안녕,
새 열에서 이 복잡한 공식을 사용할 수 있습니다.
Eval(
Eval Expr(
:Val[(:Group << get data table) << get rows where(
Col Cumulative Sum( 1, :Group ) == 2 & :Group == Expr( :Group[Row()] )
)] / :Val
)
)
이것은 적어도 조금은 풀어볼 가치가 있을 것입니다.
Eval( Eval Expr( )) 구문은 Expr ( :Group[Row()] ) 식을 강제로 평가하는 데 사용됩니다. 이것이 없으면 각 행에 여러 값이 반환됩니다. 각 그룹에 대해 하나씩. Eval(Eval Expr()) 래퍼와 Expr() 래퍼를 제거하여 무슨 뜻인지 확인하십시오.
비율에서 사용할 값을 결정하려면 현재 그룹 내에서 두 번째 행을 가져와야 합니다. 이 행을 찾으려면 그룹(get rows where 절의 두 번째 부분)에서 일치해야 하며 그룹 내의 두 번째 값으로도 일치해야 합니다. 이를 수행하는 쉬운 방법은 :Group으로 그룹화된 1 열의 누적 합계를 보는 것입니다. 이 열 == 2일 때 일부 그룹의 두 번째 값이 있습니다. 이것은 여러 행에서 발생하지만 절의 두 번째 부분은 결과를 현재 행의 그룹과 일치하는 그룹으로 제한합니다. 이러한 방식으로 테이블을 그룹 또는 값별로 정렬할 필요조차 없습니다.
누적 합계 등가의 2를 k로 변경하면 그룹에서 2번째 값 대신 k번째 값을 사용할 수 있습니다.
건배,
브래디

Re: 기본 값의 위치를 기준으로 상대 값을 계산하는 방법은 무엇입니까?댓글 감사합니다. 예, 이전 게시물의 테이블에는 0이 있었지만 약간 혼란 스러울 수 있다고 생각하여 각 항목 그룹의 두 번째 행에서 값을 가져 와서 원하는 값을 계산하는 것이 더 간단 할 것이라고 생각했습니다. . 그리고 예, Param1 열의 "0"은 행 번호만 결정하기 위한 것이었습니다.Re: 기본 값의 위치를 기준으로 상대 값을 계산하는 방법은 무엇입니까?값1_rel 수식 열이 될 수 있습니다.
귀하의 예제 데이터를 기반으로 수식이 무엇인지 잘 모르겠습니다.
일반적으로 나는 상대적인 평균을 기대합니다. 값1 - 매개변수1 , 또는 값1 - 0 , 그러나 둘 다 예제와 일치하지 않습니다.
편집: 내 생각에 공식은 값1_rel 귀하의 데이터와 일치하는 것은 2 / 값1 . 열 수식에 넣을 수 있습니다. 하지만...
나는 당신이 어딘가에서 0을 가지고 있다고 생각하고 0에서 행 번호 2를 조회하고 싶습니다. JMP 데이터 테이블은 일반적으로 함께 속한 한 행의 모든 데이터로 정렬됩니다. Param 값을 Value 열의 열 속성으로 지정하는 것이 합리적일 수 있습니다. JSL 스크립팅이 조금 더 필요하지만 데이터 구성을 더 잘 반영할 수 있습니다.