for 루프를 스크립팅하여 데이터 테이블의 모든 Y 열에 대해 일원 분산 분석을 실행하는 방법10,000 개의 다른 열 이름과 "HN30"이라는 레이블이 붙은 제어 그룹을 포함하여 5 개의 다른 샘플 그룹의 복제를 포함하는 적은 수의 행이있는 큰 데이터 테이블이 있습니다.각 Y 변수를 한 번에 하나씩 지정하면 제어 그룹 (HN30)에 대해 단방향 ANOVA 및 Dunnett 사후 평균 비교 테스트 (즉, 평균 비교)를 실행하는 스크립트가 있습니다. 그러나 10,000 개의 다른 열 이름을 모두 입력하거나 Dunnett 테스트를 실행하거나 모든 열 분석에 대한 컨트롤 이름을 입력하라는 메시지를 받고 싶지 않습니다.누군가가 한 번에 하나씩 모든 열을 통해 명령을 반복하는 for 루프를 작성하도록 도와 줄 수 있습니까? 출력을 얻은 후에는 Combine tables 명령을 사용하여 모든 출력 P- 값을 병합하는 방법을 알고 있습니다.아래는 "SPP1"이라는 두 개의 지정된 열과 제어 그룹 행이 "HN30"이라는 레이블이 지정된 "ABCC2"에 대해 작동하는 것입니다.모든 열을 반복하면됩니다. 정말 고마워 !
Fit Group(
Oneway(
Y( :SPP1 ),
X( :Cell lline ),
With Control( 1, {"HN30"} ),
Comparison Circles( 1 ),
SendToReport(
Dispatch(
{"Means Comparisons",
"Comparisons with a control using Dunnett's Method",
"LSD Threshold Matrix"},
"p-Value",
NumberColBox,
{Set Format( "Fixed Dec", 15, 15 )}
)
)
),
Oneway(
Y( :ABCC2 ),
X( :Cell lline ),
With Control( 1, {"HN30"} ),
Comparison Circles( 1 ),
SendToReport(
Dispatch(
{"Means Comparisons",
"Comparisons with a control using Dunnett's Method",
"LSD Threshold Matrix"},
"p-Value",
NumberColBox,
{Set Format( "Fixed Dec", 15, 15 )}
)
)
),
<<{Arrange in Rows( 1 )}
);스크립팅Re : 데이터 테이블의 모든 Y 열에 대해 단방향 ANOVA를 실행하기 위해 for 루프를 스크립팅하는 방법다음은 루프에 대한 한 가지 예입니다. 아마도 당신은 당신의 필요에 적응할 수있을 것입니다.
필요한 경우 스크립팅 색인 또는 스크립팅 참조에서 사용 된 명령에 대한 예제를 찾을 수 있습니다.
Names Default To Here( 1 );
cdt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
all_ys = cdt << get column names( Continuous, String );
For( i = 1, i <= n items(all_ys), i++,
Eval( Parse( Eval Insert( "oneway( X( :SITE ), Y( :^all_ys[i]^ ) )" ) ) )
);
Re : 데이터 테이블의 모든 Y 열에 대해 단방향 ANOVA를 실행하기 위해 for 루프를 스크립팅하는 방법감사합니다 Georg,
귀하의 예제를 특정 테이블에 적용하고 이제 각 열에 대해 모든 일원 분산 분석을 실행하여 해당 부분이 작동하도록합니다.그러나 각 ANOVA를 따르기 위해 Dunnett 테스트에서 작업하는 방법을 여전히 알 수 없습니다.for 루프를 사용하여 해당 하위 명령을 구성하는 방법을 모르겠습니다.여기 내가 지금까지 가지고있는 것이지만, for 루프에서 실행하기 위해 맨 아래에 표시 한 특정 Dunnett 테스트를 수행 할 수 없습니다.어떤 아이디어?다시 한 번 감사합니다
Names Default To Here( 1 );
cdt = Open( "F:/Stats/DTest.jmp" );
all_ys = cdt << get column names( Continuous, String );
For( i = 1, i <= n items(all_ys), i++,
Eval( Parse( Eval Insert( "oneway( X( :Cell lLine ), Y( :^all_ys[i]^ ) )" ) ) )
);
Fit Group(
Oneway(
Y( :SPP1 ),
X( :Cell lline ),
With Control( 1, {"HN30"} ),
Comparison Circles( 1 ),
SendToReport(
Dispatch(
{"Means Comparisons",
"Comparisons with a control using Dunnett's Method",
"LSD Threshold Matrix"},
"p-Value",
NumberColBox,
{Set Format( "Fixed Dec", 15, 15 )}
)
)
),
Oneway(
Y( :ABCC2 ),
X( :Cell lline ),
With Control( 1, {"HN30"} ),
Comparison Circles( 1 ),
SendToReport(
Dispatch(
{"Means Comparisons",
"Comparisons with a control using Dunnett's Method",
"LSD Threshold Matrix"},
"p-Value",
NumberColBox,
{Set Format( "Fixed Dec", 15, 15 )}
)
)
),
<<{Arrange in Rows( 1 )}
);Re : 데이터 테이블의 모든 Y 열에 대해 단방향 ANOVA를 실행하기 위해 for 루프를 스크립팅하는 방법당신은 이것을 시도 할 수 있습니다 :
Names Default To Here( 1 );
cdt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
ow_expr = Expr(
Oneway(
Y( Column( all_ys[i] ) ),
X( :SITE ),
/* 3rd site is control */
With Control( 1, {3} ),
Comparison Circles( 1 ),
SendToReport(
Dispatch(
{"Means Comparisons", "Comparisons with a control using Dunnett's Method", "LSD Threshold Matrix"},
"p-Value",
NumberColBox,
{Set Format( "Fixed Dec", 15, 15 )}
)
)
)
);
all_ys = cdt << get column names( Continuous, String );
//For( i = 1, i <= n items(all_ys), i++,
For( i = 1, i <= 3, i++,
Eval( Substitute( ow_expr, Expr( i ), i ) );
// Eval( Substitute( Expr( oneway( X( :SITE ), Y( Column( all_ys[i] ) ) ) ), Expr( i ), i ) )
// Eval( Parse( Eval Insert( "oneway( X( :SITE ), Y( :^all_ys[i]^ ) )" ) ) )
);