+/- 1.5 시그마 기준 표준편차 스크립트안녕,
저는 값 범위(+/- 1.5 시그마)가 있는 데이터를 보고 표준 편차를 계산하는 것을 좋아합니다. JMP에서 그것을 달성할 수 있는 사람이 있습니까?
당신의 도움에 감사드립니다. 감사해요
Re: +/- 1.5 시그마 기준 표준편차 스크립트고마워 짐. 매우 도움이 됩니다.
Re: +/- 1.5 시그마 기준 표준편차 스크립트고마워 데이브.
Re: +/- 1.5 시그마 기준 표준편차 스크립트실행 중인 문제는 NPN1과 같은 열 이름이 아니라 "NPN"이라는 리터럴 문자열을 수식에 넣었다는 것입니다.대체 기능을 사용하면 "NPN1"을 선택하고 :NPN1을 대체할 수 있습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
Current Data Table();
lstNames = dt << Get Column Names( string, Numeric );
For( i = 1, i <= N Items( lstNames ), i++,
If( Contains( lstNames[i], "NP" ) == 1,
sigma = Col Std Dev( Column( dt, lstNames[i] ) );
Eval(
Substitute(
Expr(
special std dev = Col Std Dev(
If( (Col Mean( __col__ ) - 1.5 * sigma) <= __col__ | __col__ >= (Col Mean( __col__ ) + 1.5 * sigma),
.,
__col__
)
)
),
Expr( __col__ ), Parse( ":" || lstNames[i] )
)
);
Show( sigma, special std dev );
)
);
그리고 리터럴 문자열이 열 이름으로 취급되도록 지정하는 또 다른 방법이 있습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
Current Data Table();
lstNames = dt << Get Column Names( string, Numeric );
For( i = 1, i <= N Items( lstNames ), i++,
If( Contains( lstNames[i], "NP" ) == 1,
sigma = Col Std Dev( Column( dt, lstNames[i] ) );
special std dev = Col Std Dev(
If(
(Col Mean( As Column( lstNames[i] ) ) - 1.5 * sigma) <= As Column( lstNames[i] ) | As Column( lstNames[i] ) >= (
Col Mean( As Column( lstNames[i] ) ) + 1.5 * sigma),
.,
As Column( lstNames[i] )
)
);
);
Show( sigma, special std dev );
);Re: +/- 1.5 시그마 기준 표준편차 스크립트Col Std Dev에 대한 인수는 문자열 이름이 아닌 열 참조여야 합니다.Column 함수를 사용하여 문자열 이름에서 열 참조를 생성할 수 있습니다.
sigma = Col Std Dev( Column( lstNames[i]) );
Re: +/- 1.5 시그마 기준 표준편차 스크립트안녕 짐,
이 특수 시그마를 계산하기 위해 귀하의 스크립트를 따르고 열 목록을 추가했습니다. 스크립트를 실행하면
시그마 = .;
특수 표준 개발 = .;
시그마 = .;
특수 표준 개발 = .;
시그마 = .;
스크립트는 다음과 같습니다.
여기에 기본 이름 ( 1 );
dt = 열려 있는 ( "$SAMPLE_DATA/semiconductor capability.jmp" );
현재 데이터 표 ();
lstNames = dt << 열 이름 가져오기 (문자열,숫자);
~을 위한 (나는 = 1 , 나는 <= N개 항목 (lstNames), i++,
만약에 ( 포함 (lstNames[i], "NP" ) == 1 ,
시그마 = 열 표준 편차 ( lstNames[i]);
특수 표준 개발 = 열 표준 편차 ( 만약에 ( ( 열 평균 ( lstNames[i] ) - 1.5 *시그마) <= lstNames[i] | lstNames[i] >= ( 열 평균 ( lstNames[i] ) + 1.5 *시그마), . ,lstNames[i] ) );
보여주다 ( 시그마, 특수 std dev );
)
);
당신의 도움에 감사드립니다. 감사해요
@에 쓴 :
빠른 피드백과 솔루션에 대해 Jim에게 감사드립니다. 이것이 내가 원하는 것입니다. 나는 또한
@txnelson 쓴 :
이것이 당신이 원하는 것입니까>
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
sigma = Col Std Dev( :npn1 );
special std dev = Col Std Dev( If( (Col Mean( :npn1 ) - 1.5*sigma) <= :npn1 | :npn1 >= (Col Mean( :npn1 ) + 1.5*sigma), ., :npn1 ) );
Show( sigma, special std dev );
데이터 테이블의 여러 열에 대해 이 작업을 수행한 다음 Pass 또는 Fail 값으로 새 열을 생성합니다. 데이터 테이블에서 각 열에 대한 사양 제한을 읽은 다음 제어 제한을 기반으로 "통과" 또는 "실패"가 있는 새 열을 읽을 수 있다고 가정합니다.
이런 유형의 작업을 수행한 사람이 있다면 그로부터 배우고 싶습니다. 감사해요
Re: +/- 1.5 시그마 기준 표준편차 스크립트빠른 피드백과 솔루션에 대해 Jim에게 감사드립니다. 이것이 내가 원하는 것입니다. 나는 또한
@txnelson 쓴 :
이것이 당신이 원하는 것입니까>
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
sigma = Col Std Dev( :npn1 );
special std dev = Col Std Dev( If( (Col Mean( :npn1 ) - 1.5*sigma) <= :npn1 | :npn1 >= (Col Mean( :npn1 ) + 1.5*sigma), ., :npn1 ) );
Show( sigma, special std dev );
데이터 테이블의 많은 열에 대해 이 작업을 수행한 다음 Pass 또는 Fail 값으로 새 열을 생성합니다. 데이터 테이블에서 각 열의 사양 제한을 읽은 다음 제어 제한을 기반으로 "통과" 또는 "실패"가 있는 새 열을 읽을 수 있다고 가정합니다.
이런 유형의 작업을 수행한 사람이 있다면 그로부터 배우고 싶습니다. 감사해요
Re: +/- 1.5 시그마 기준 표준편차 스크립트이것이 당신이 원하는 것입니까>
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
sigma = Col Std Dev( :npn1 );
special std dev = Col Std Dev( If( (Col Mean( :npn1 ) - 1.5*sigma) <= :npn1 | :npn1 >= (Col Mean( :npn1 ) + 1.5*sigma), ., :npn1 ) );
Show( sigma, special std dev );