한 열에서 최대값이 있는 행 선택요약을 사용하여 한 열에서 최대값(그룹으로 인해 여러 개)을 찾을 수 있습니다. 그러나 원래 테이블의 어떤 행에서 최대값이 발생하는지 조회하고 싶습니다.
쉬운 해결책이 있습니까? 당신의 도움을 주셔서 감사합니다!Re: 한 열에 최대값이 있는 행을 선택하세요.안녕하세요, 오래된 스레드에 답장을 드려 죄송합니다. 다른 곳에서 관련 예제를 찾을 수 없습니다.
그룹별로 요약한 다음 그룹별로 최대 가중치가 있는 행을 선택하고 싶습니다.
요약할 수 있었지만 해당 행을 선택하는 방법을 모르겠습니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << clear select;
Summarize( g = by( :age, :sex ), m = Max( :weight ) );
/* How to select those rows summarized by group?
감사합니다
Re: 한 열에 최대값이 있는 행을 선택하세요.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />환상적인 솔루션입니다. 이것이 바로 내가 찾던 것입니다!
Re: 한 열에 최대값이 있는 행을 선택하세요.당신은 또한 사용할 수 있습니다 행 가져오기 :
yourarray = dt << 행 가져오기 ( : 열 이름 == 최고값 ) ;
행 가져오기의 장점은 a) 두 단계가 아닌 한 단계이고 b) 테이블에서 선택된 행이 없다는 것입니다.선택한 행이 필요한 경우 MOSFETtestEng에 표시된 접근 방식이 트릭을 수행합니다.
Re: 한 열에 최대값이 있는 행을 선택하세요.나는 이것이 2년 후라는 것을 알고 있지만 이것은 같은 질문으로 이 게시물을 찾은 모든 사람들을 위한 것입니다.
스크립트에서 "선택한 행 가져오기" 기능을 사용해 보십시오.
yourarray = dt << Get Selected Rows;
이제 배열 "yourarray"에는 선택된 행 번호 목록이 포함됩니다.
최대 값을 가진 행을 찾으려면 다음을 시도하십시오.
// finds the maximum value in the columnt
peakvalue = Col Max( :columname);
// selects all rows with the maximum value. (dt is the name of the data table.)
dt << Select Where( :columnname == peakvalue);
// stores a list of the row numbers with the maximum value in this array
yourarray = dt << Get Selected Rows;
Re: 한 열에 최대값이 있는 행을 선택하세요.나는 JMP10을 가지고 이 문제를 다시 살펴보았다.열 일치를 사용하는 "조인"이 잘 작동합니다.테이블 "업데이트"가 훨씬 더 간단할 것 같습니다.
Re: 한 열에 최대값이 있는 행을 선택하세요.For Each Row()는 대형 테이블에 비효율적일 수 있습니다.
Where()를 선택하는 것이 아마도 더 빠를 것입니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << clear select;
Summarize( g = by( :age ), m = Max( :height ) );
dt<<SELECT where=""></SELECT>
Re: 한 열에 최대값이 있는 행을 선택하세요.스크립트가 좋아 보입니다. 나는 그것을 시도하고 다시보고합니다.
제가 놀란 것은 JMP 자체가 데이터 최대값의 인덱스(행 번호)를 어딘가에 보관하지 않는다는 것입니다.
동Re: 한 열에 최대값이 있는 행을 선택하세요.죄송합니다. 당신 말이 맞습니다. 나는 대답이 너무 빨랐다. 위의 잘못된 게시물을 수정하겠습니다.
내가 제안하고 싶은 것은 요약과 업데이트를 결합할 수 있다는 것입니다(또는 가입, 업데이트가 JMP7 테이블 메뉴에 있는지 확실하지 않음).
다음은 작동해야 하지만 매우 큰 데이터 테이블에는 비효율적일 수 있는 스크립트 예제입니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << clear select;
Summarize( g = by( :sex ), m = Max( :age ) );
For( j = 1, j <= N Items( g ), j++,
For Each Row( If( :sex == g[j] & :age == m[j], Row State() = Selected State( 1 ) ) )
);
Re: 한 열에 최대값이 있는 행을 선택하세요.MS,
감사해요. 나는 그것을 시도했고 두 번째 요약 테이블을 선택할 때 여전히 원래 테이블의 모든 행을 선택하고 있습니다. 요약 테이블에서 한 행(그룹의 최대값)을 선택할 때마다 그룹의 첫 번째 요약 테이블에 있는 모든 행도 선택됩니다.
나는 당신의 지시를 올바르게 따르고 있기를 바랍니다. 두 번째 요약 테이블의 이름은 "DataTable By (group, data) By (group)"입니까?
참고로 저는 JMP7을 사용하고 있습니다.
동Re: 한 열에 최대값이 있는 행을 선택하세요.제프,
감사해요. 이것은 JMP 9의 새로운 기능으로 보입니다. 저는 JMP7을 사용하고 있습니다. 업그레이드를 요청할 수 있을 것 같습니다.
또한 한 열에서 여러 최대값을 선택하려고 합니다. 최대값은 다른 열에 지정된 다른 그룹에 속합니다.
동Re: 한 열에 최대값이 있는 행을 선택하세요.Rows->Row Selection->Select Dominant는 열 또는 열 그룹에서 최대(또는 최소) 값이 있는 행을 선택합니다.
나는 그것이 당신이 찾고 있는 것을 얻을 것이라고 믿습니다.
제프Re: 한 열에 최대값이 있는 행을 선택하세요.일치하는 열로 group column(s) = group column(s) 및 data = max(data)와 함께 Update(Tables 메뉴)를 사용하여 원본 테이블을 요약 테이블과 일치시킬 수 있습니다. 최대 행은 추가된 NRows 열에서 누락되지 않은 셀로 표시됩니다.
내 첫 번째 대답은 엉성한 생각에 근거한 것입니다 ...
메시지 편집자: MS