수식 생성: 그룹 Col C에서 Col B가 최소인 행에 대한 Col A의 평균?Big Class 데이터 세트를 사용하고 있고 같은 나이의 가장 키가 작은 학생의 평균 체중에 대한 새 열을 만들고 싶다고 가정해 보겠습니다. 어떻게 설정합니까?
나는 byVariable을 사용하여 Col Mean인 첫 번째 비트(동년배에서 가장 키가 작은 학생의 키 찾기)를 수행하는 방법을 알고 있습니다.
열 최소( :height, :age )
하지만 제가 어떻게 해야 할지 모르는 것은 (A) 해당 학생의 나이가 이 행에 있는 학생의 나이와 일치하고 (B) 해당 학생의 키가 일치하는 학생들의 하위 집합의 평균 체중을 취하는 것입니다. 또래 학생들의 가장 작은 키와 일치합니다.
데이터 혼합 및 정리Re: 수식 생성: 그룹 Col C에서 Col B가 최소인 행에 대한 Col A의 평균?정말 환상적이네요. 감사합니다! 매일 두 가지 새로운 것을 배웁니다 
Cars 수식을 하나의 열로 결합하면 다음과 같습니다.
:Size[Col Max( If( :Wt == Col Max( :Wt, :Make ), Row(), . ), :Make )]
Re: 수식 생성: 그룹 Col C에서 Col B가 최소인 행에 대한 Col A의 평균?나는 약간 다른 수식을 사용하여 데이터 테이블을 첨부하고 하나 이상으로 분할했습니다(자동차에 대한 이전 테이블은 최대가 아닌 무게에 대한 그룹화로 인해 몇 가지 문제가 있었을 수 있음). 또한 동점인 경우 어떤 일이 발생하는지 확인할 수 있습니다.
:Size[idx]를 사용하면 지정된 idx를 사용하여 :Size 열의 값에 액세스할 수 있습니다. 예를 들어 :Size[[1,2,3]]를 사용하여 여러 항목에 액세스할 수도 있습니다(약간 도움이 될 수 있음). 데이터 테이블 첨자 )
스크립트 창에서 이것을 실행하고 로그를 살펴보고 데이터 테이블과 비교하십시오.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Show(dt:name[1]);
Show(dt:name[5]);
Show(dt:name[10]);
Show(dt:name[[10, 11]]);
Show(dt:name[10::15]);Re: 수식 생성: 그룹 Col C에서 Col B가 최소인 행에 대한 Col A의 평균?감사해요 @jthi , 정말 훌륭하네요!
이해를 돕기 위해 If 문은 높이가 해당 연령의 최소 높이가 아닌 모든 행을 무효화하는 "가상" 열을 생성한 다음 Col Mean을 사용하여 해당 "가상" 열에서 작동하는 것처럼 보입니다. 좋은 트릭이에요!
자동차 예제에 대한 공식이 작동하지 않는 것 같습니다. 예를 들어 가장 무거운 Chevy(교외)가 "mpv"임에도 공식은 Chevrolet에 대해 "pu"를 반환하고 Chrysler에 대해서는 "med"를 반환합니다. 가장 무거운 Chrysler(Fifth Ave)는 "hev"입니다. 어쨌든, 내 지원서에 대해서는 이미 Big Class의 공식으로 문제를 해결했습니다. 하지만 단지 호기심으로 그리고 JMP-fu를 발전시키기 위해 최종 공식에서 무슨 일이 일어나고 있는지 더 알고 싶습니다. ":Size[...]"와 같이 대괄호 연산자는 무엇을 합니까?
Re: 수식 생성: 그룹 Col C에서 Col B가 최소인 행에 대한 Col A의 평균?공식을 사용하여 이를 수행할 수 있습니다(연령 그룹의 최소 체중 평균 구하기).
Col Mean(If(:height == Col Min(:height, :age), :weight, .), :age)
좀 더 쉽게 이해할 수 있도록 공식을 두 개의 다른 공식으로 나눕니다.
최소 중량 값:
If(:height == Col Min(:height, :age),
:weight,
.
)
그 값의 평균은 다음과 같습니다.
Col Mean(:MinWeightVal, :age)
Col Mean은 누락된 값을 무시하므로 이것이 작동합니다.
자동차의 경우(데이터가 어떻게 표시되기를 원하는지 정확히 알 수 없음:
제조사의 최대 중량:
Col Max(:Wt, :Make)
한 줄만 사용하려는 경우 무게에 맞는 크기:
If(:Wt == :Max Wt for Make,:Size,"")
여러 행에 동일한 값이 있으면 거기에서 일부 Col 함수를 삭제할 가능성이 높지만 이것이 제가 빨리 생각해낸 가장 쉬운 방법이었습니다.
:Size[Col Max(Col Max(Row(), If(:Wt == Col Max(:Wt, :Make), 1, 0), :Make), :Make)]
여러 가지 다른 공식을 분석해 어떻게 작동하는지 확인하세요.
Re: 수식 생성: 그룹 Col C에서 Col B가 최소인 행에 대한 Col A의 평균?안녕 @markschwab ,
테이블을 정렬할 여유가 있다면 다음을 시도해 보세요.
Names default to here (1);
// Open Data Table: Cars.jmp
dt = Open( "$SAMPLE_DATA/Cars.jmp" );
// Sort data table
dt << Sort( By( :Make, :Wt ), Replace Table, Order( Ascending, Descending ) );
// New column: Size of Max Wt for Make<BR />dt << New Column( "Size of Max Wt for Make",<BR />Character,<BR />"Nominal",<BR />Formula( If( Row() == 1, :Size, :Make == Lag( :Make ), Lag( :Size of Max Wt for Make ), :Make != Lag( :Make ), :Size ) )<BR />);<BR />
지금쯤이면 정렬이 필요 없는 직접 공식 해법도 알고 싶습니다.
나중에 데이터를 다시 정리해야 하는 경우 수식을 제거하거나 평가를 억제하면 됩니다.
Re: 수식 생성: 그룹 Col C에서 Col B가 최소인 행에 대한 Col A의 평균?고마워요 론. 나는 그것이 나에게 도움이 될 수 있다고 생각합니다. (동일한 데이터 시트 내에서 이를 수행할 수 있으면 좋을 것입니다.)
더 쉽게 만들려면 실제 애플리케이션에서 평균 대신 조회를 사용하는 것이 좋을 것입니다. 제가 최대로 사용할 열은 타임스탬프이며 각 그룹에 대해 다음과 같은 고유한 행이 하나씩 있다고 가정할 수 있습니다. 가장 최근의 타임스탬프입니다.
예를 들어 Cars 데이터 세트를 사용하면 내 문제는 다음과 같습니다.
동일한 제조사의 모든 자동차 중에서 중량이 가장 높은 자동차를 찾은 다음 해당 최대 중량 자동차의 크기를 조회하는 "제조사 최대 중량의 크기" 열을 만듭니다.
Re: 수식 생성: 그룹 Col C에서 Col B가 최소인 행에 대한 Col A의 평균?안녕 @markschwab ,
누군가가 열 수식을 사용하는 매끄러운 방법을 보여줄 때까지 다음을 시도해 볼 수 있습니다.
names default to here (1);
// Open Data Table: Big Class.jmp
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// New column: min height 0/1
dt<< New Column( "min height",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( If( :height == Col Min( :height, :age ), 1 ) )
);
// Data table summary
// → Data Table( "Big Class By (age, Min height)" )
dt2 = dt << Summary(
Group( :age, :Min height ),
Mean( :weight ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
// Delete selected rows
dt2 <<
Select Where( Is Missing( :Min height ) ) << Delete Rows;
// Update data tables
dt << Update(
With( dt2 ),
Match Columns( :age = :age ),
Replace Columns in Main Table(:"Mean(weight)"n )
);
수식은 자동으로 업데이트되므로 더 좋을 것입니다.
도움이 된다면 알려주세요.
론