수정 평균 계산안녕 모두,
내가 얻는 연속적인 숫자 값이 있는 4개의 결과 열에서 "수정된 평균"을 계산하는 데 어려움을 겪습니다.
"수정된 평균"을 어떻게 정의합니까?평균에서 가장 먼 값을 제외하고 가장 가까운 값을 두 번 계산하고 싶습니다(제외된 "이상치"를 가까운 값으로 효과적으로 대체).
제외된 값은 빨간색으로 강조 표시되고 중복 값은 녹색으로 강조 표시되는 아래 예를 참조하십시오.

지원해 주셔서 감사합니다! (저는 현재 JMP 17.0에 있습니다)
아래 샘플 원시 데이터가 포함된 스크립트를 찾으십시오.
New Table( "corrected_mean_script",
Add Rows( 10 ),
New Column( "R1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Color Cells( {36, {1, 10}} ),
Set Values( [50.7, 54.5, 53.7, 54.5, 51.4, 47.6, 50.8, 51.4, 47.1, 53.1] )
),
New Column( "R2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Color Cells( {{36, {3, 8}}, {3, {5, 6, 9}}} ),
Set Values( [49.2, 55.4, 51.3, 54.8, 55.3, 53.7, 51.6, 51.2, 51.8, 50.3] ),
Set Display Width( 48 )
),
New Column( "R3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Color Cells( {{3, {1, 2, 4}}, {36, {5, 7}}} ),
Set Values( [54.7, 50.3, 55.1, 51.3, 52.9, 48.2, 53, 52.8, 44.1, 51.6] )
),
New Column( "R4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Color Cells( {{36, {2, 4, 6, 9}}, {3, {3, 7, 8, 10}}} ),
Set Values( [50.3, 52, 49.8, 52.9, 50.5, 52.1, 54.3, 44.8, 48.6, 55.3] ),
Set Display Width( 50 )
)
)데이터 테이블스크립팅윈도우Re: 수정 평균 계산해결책을 단계별로 볼 수 있는 한 가지 방법이 있습니다.
Names Default To Here( 1 );
dt = New Table( "corrected_mean_script",
Add Rows( 10 ),
New Column( "R1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Color Cells( {36, {1, 10}} ),
Set Values( [50.7, 54.5, 53.7, 54.5, 51.4, 47.6, 50.8, 51.4, 47.1, 53.1] )
),
New Column( "R2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Color Cells( {{36, {3, 8}}, {3, {5, 6, 9}}} ),
Set Values( [49.2, 55.4, 51.3, 54.8, 55.3, 53.7, 51.6, 51.2, 51.8, 50.3] ),
Set Display Width( 48 )
),
New Column( "R3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Color Cells( {{3, {1, 2, 4}}, {36, {5, 7}}} ),
Set Values( [54.7, 50.3, 55.1, 51.3, 52.9, 48.2, 53, 52.8, 44.1, 51.6] )
),
New Column( "R4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Color Cells( {{36, {2, 4, 6, 9}}, {3, {3, 7, 8, 10}}} ),
Set Values( [50.3, 52, 49.8, 52.9, 50.5, 52.1, 54.3, 44.8, 48.6, 55.3] ),
Set Display Width( 50 )
)
);
dt << New Column( "Corrected Mean", Numeric, "Continuous" );
For Each Row(
mean = Mean( :R1, :R2, :R3, :R4 );
data = dt[Row(), 1::4];
absDiff = Abs( data - mean );
min = (data[Loc( absDiff == Min( absDiff ) )])[1];
data[Loc( absDiff == Max( absDiff ) )[1]] = min;
:Corrected Mean = Mean( data );
);Re: 수정 평균 계산Mark에게 많은 감사를 드립니다. 잘 작동합니다.
나중에 다른 사람들이 참조할 수 있도록 이 항목의 팁을 사용하면 더 넓은 데이터 테이블에서 4개의 열을 현지화할 수 있습니다.
https://community.jmp.com/t5/Discussions/How-to-get-column-number-from-column-name-JMP/td-p/5987
다시 한번 감사합니다!