"where" 조건과 함께 Col Maximum Formula를 사용하는 방법안녕하세요, 다른 모든 국가에 대한 벤치마크로 새 열을 공식화하려는 문제가 있습니다. 국가에 대한 행이 더 있는 경우 최대 값을 벤치마크로 사용하고 싶습니다. 자세한 내용은 아래 예를 참조하십시오.
데이터 종류는 다음과 같습니다.
국가 가치 기간
10 201301
30 201301
B 20 201301
C 50 201301
D 40 201301
달성하려는 것(셀 수식 사용): Col Maximum(:값, :기간, :국가) 여기서 :국가 == "A"
산출:
국가 가치 기간 벤치마크
A 10 201301 30
A 30 201301 30
B 20 201301 30
C 50 201301 30
D 40 201301 30
보시다시피 저는 국가 A만의 최대값을 벤치마킹하고 싶습니다.
Col Maximum(:value, :period, :country == "A")을 시도했는데 "50"이 반환됩니다.
Col Maximum(:value, :period, :country) 및 Col Maximum(:value, :period, :country == "A") 모두 "50"을 반환합니다.
나는 이것에 대한 간단한 해결책이 있다고 확신합니다!
너희들이 도울 수 있기를 바란다!
감사 감사!
Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?흥미로운 질문 - 답변을 기다리고 있습니까?
제한하는 방법과 유사한 질문이 있는 일련의 게시물이 있습니다. 열 ... 집계 특정 하위 집합에 대한 기능.
(주로: 제외되지 않은 행의 하위 집합으로 제한)
https://community.jmp.com/t5/Discussions/Compute-Column-Mean-while-restricting-observations-used/mp/10377#M10055
https://community.jmp.com/t5/Discussions/JMP10-Col-Max-and-Col-Min-functions-returned-the-data-from/td-p/10555
https://community.jmp.com/t5/Discussions/Col-Functions-and-Row-States/td-p/351705
아이디어:
평균 키에 관심이 있는 경우 모든 행을 집계하거나 남성 항목과 여성 항목을 개별적으로 집계할 수 있습니다.
두 번째 솔루션은 첫 번째 솔루션만큼 쉽습니다. 추가 GroupBy 변수를 사용하여 원하는 데이터와 원하지 않는 데이터를 분할하기만 하면 됩니다.
그러나 사용자가 추가로 자주 필요로 하는 것: 값은 모든 해당 행에 표시되어야 합니다(예: 여성의 경우도 해당).
[원래 게시물의 벤치마크 열이 있는 예는 그러한 동작이 의미가 있는 이유를 보여줍니다.]
GroupBy를 사용하면 올바른 값을 쉽게 얻을 수 있지만 이를 모든 행에 배포하는 방법은 무엇입니까?
뒤에 룩업 테이블 같은 것이 있다면 열 ... 집계 함수는 동일한 식별자를 사용합니다.
1) 집계를 위해 행을 다른 그룹으로 분할("M" / "F"):
Judy는 여성이므로 Judy의 행에 있는 체중은 다음에 포함되어야 합니다. 여성 평균 체중
2) 조회 테이블("M" / "F")에서 항목을 읽을 때 색인으로 사용:
Judy는 여성이므로 새 열에 다음이 포함되어야 합니다. 여성 평균 체중 주디의 행에서
따라서 남성과 여성은 식별자가 동일하기 때문에(mean1) 동일한 값을 얻거나 식별자가 다르기 때문에(mean2) 서로 다른 값을 얻습니다.
그래서:
JMP 사용자 ~할 수 있다 GroupBy 기능을 사용하여 다음을 통해 계산에서 값을 제거합니다.
- 계산하다 하위 그룹마다 다른 값
- 원하지 않는 결과 덤프
그러나 그는 얻는다
- 가져 오기 하위 그룹마다 다른 값
무료로 - 그가 이 옵션을 주문하지 않았더라도(좋아, 코드는 다른 이야기를 말하지만 사용자가 원하는 것이 무엇인지 생각해 봅시다) 
거기에 한 줄 명령 평균 계산에서 여성을 제거하지만 "여성"으로 각 행에 값을 쓰려면?
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column("mean1", Formula(Col Mean(:weight, :age)));
dt << New Column("mean2", Formula(Col Mean(:weight, :age, :sex)));
dt << New Column("mean2", Formula(If(:sex=="M", Col Mean(:weight, :age, :sex))));
dtM = dt << subset( Rows( dt << get rows where( :sex== "M" ) ), selected columns( 0 ));
dtM << New Column("mean_M", Formula(Col Mean(:weight, :age)));
dt << Update(
With( dtM ),
Match Columns(:age = :age ),
Add Columns from Update Table( :mean_M ),
Replace Columns in Main Table( None )
);
Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?감사해요.Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?Col Maximum()은 행당 분리 결과가 출력인 수식에서만 실행 가능합니다.원하는 작업을 수행하려면 Summarize() 함수를 사용하십시오.
보다:
도움말==>스크립팅 인덱스==>요약
Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?안녕 마크,
연령별, 성별별 최대 체중을 얻으려고 했으나 다음 스크립트에서는 하나의 값만 출력합니다.
연령별로 6개의 다른 연령이 있었고, 각각에 대해 각 연령에 대한 최대 체중을 계산하고 싶습니다.
Names Default To Here( 1 );
Clear Log();
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
max_weight_by_age = Col Max( :weight, :age );
max_weight_by_sex = Col Max( :weight, :sex );
Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?Big Class 예제 데이터 테이블의 새 열에 이 수식을 추가할 수 있습니다.
Col Max( :weight, :age )
Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?안녕 마크,
col Max를 사용할 때 를 어떻게 사용하는지 예를 들어주실 수 있나요?
감사해요.Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?도움말 > 스크립팅 인덱스 > 함수를 참조하십시오.

Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?Jim에게 감사합니다. 저는 요약만을 의미했습니다. 내가 하는 방법은 다음과 같습니다(두 개의 jsl 명령).
열을 요약하고 값(최소/최대/또는 열에 대한 다른 통계)이 있는 새 테이블을 만듭니다.
그런 다음 행 항목을 일치시켜 요약된 테이블을 사용하여 기본 테이블을 업데이트합니다.
고유한 열 값을 식별하고 이 추가 단계의 필요성을 제거할 수 있는 Max col() 명령에 조건부 옵션이 있는지 궁금합니다. (추가 테이블과 2개의 추가 단계를 제거합니다).
당신의 도움을 주셔서 감사합니다.
Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?저는 일반적으로 Summary Platform이 아닌 Summarize() 함수를 사용하여 열 내에서 발견된 수준을 쉽게 결정합니다.그런 다음 거기에서 작업을 완료하는 데 필요한 공식을 생성하기만 하면 됩니다.
Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?국가 열에 여러 이름이 있고 가능한 모든 값을 알지 못한다고 가정합니다. 이를 위해 이 쿼리를 어떻게 조정할 수 있습니까?
요약 테이블을 생성한 다음 테이블을 다시 업데이트하여 수행할 수 있지만 비효율적인 방법인 것 같아서 이렇게 한 단계로 수행할 수 있는지 궁금했습니다.
미리 감사드립니다.
Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?늦은 답변 죄송합니다! 솔루션 주셔서 감사합니다!Re: "where" 조건과 함께 Col Maximum Formula를 사용하려면 어떻게 해야 합니까?귀하의 요구 사항을 언급한 방식을 감안할 때 여러 항목이 있는 국가를 알고 있다고 가정합니다.
dt = Current Data Table();
rowperiod = :Period[Row()];
Max(
:Value[dt << get rows where(
:Country == "A" & :period == rowperiod
)]
);