테이블에 분포도를 동적으로 추가대략 180개의 데이터 열이 있는 테이블이 있습니다.
JSL의 for 루프(각 열에 특정한 로컬 데이터 필터 사용)를 통해 각 열에 대한 분포도(테이블에)를 동적으로 추가하고 싶습니다.
이것이 가능한가? 내 시도에서 발생한 일은 첨부된 모든 플롯이 for 루프의 마지막 값이라는 것입니다. 아마도 내가 놓친 간단한 것 같습니다.
감사해요!
자동화 및 스크립팅Re: 테이블에 분포도를 동적으로 추가있을 수있다.스크립트의 삭제된 버전을 첨부할 수 있다면 더 쉽고 빠르게 도움을 드릴 수 있습니다.
Re: 테이블에 분포도를 동적으로 추가나는 당신이 정확히 무엇을 찾고 있는지 잘 모르겠습니다.다음은 로컬 데이터 필터를 사용하여 모든 분포를 생성하는 간단한 스크립트입니다.
Names Default To Here( 1 );
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
ColNames = dt << get column names( string, numeric );
nw = New Window( "Distributions",
H List Box(
For Each( {Col}, ColNames,
Eval(
Eval Expr(
Distribution(
Continuous Distribution( Column( Eval( col ) ) ),
Local Data Filter( Add Filter( columns( Eval( col )) ) )
)
)
)
)
)
);

Re: 테이블에 분포도를 동적으로 추가단축 버전은 다음과 같습니다.
Clear Log();
Clear Globals();
dt = current data table ();
myTests = {:Name ("Cont_VDD"), :Name ("Cont_OUTP")};
for (i=1, i<= 2, i++,
dt << Add Properties to Table(
{New Script(
"Distribution",
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( myTests[i] ) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Process Capability( Use Column Property Specs )
)
)
});
);
Re: 테이블에 분포도를 동적으로 추가귀하의 스크립트는 테이블 스크립트가 작동하는 데 필요한 JSL을 완전히 구체화하지 않습니다.테이블 스크립트가 제대로 실행되려면 myTests의 참조를 정확한 열 이름으로 구문 분석해야 합니다.아래 JSL은 코드를 데이터 테이블에 저장하기 전에 코드를 강제로 확장합니다.또한 로컬 필터를 추가하고 스크립트 이름을 열 이름으로 만들기 위해 코드도 변경했습니다.
Names Default To Here( 1 );
Clear Log();
Clear Globals();
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
myTests = dt << get column names( string, numeric );
For( i = 1, i <= N Items( myTests ), i++,
Eval(
Eval Expr(
dt << Add Properties to Table(
{New Script(
expr(myTests[i]),
Distribution(
Stack( 1 ),
Continuous Distribution( Column( Expr( myTests[i] ) ) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Process Capability( Use Column Property Specs ),
Local Data Filter( Add Filter( columns( Expr( myTests[i] )) ) )
)
)}
)
)
)
);
Re: 테이블에 분포도를 동적으로 추가배포용 시작 스크립트에서 전역 변수를 사용하면 변수에 저장된 현재 값이 사용됩니다. 시작 스크립트의 리터럴 값으로 변환해야 합니다.
Re: 테이블에 분포도를 동적으로 추가정말 감사합니다!!!나는 스스로 JSL을 배웠고... 그 과정에서 몇 가지 장애물에 부딪혔습니다... 이제 Eval의 사용이 분명해졌습니다.... 다시 한 번 감사드립니다!
--매트
Re: 테이블에 분포도를 동적으로 추가또한, 찾고 있는 것이 단순한 히스토그램인 경우 JMP 15부터는 데이터 테이블에서 히스토그램 아이콘을 선택하기만 하면 각 열 위에 히스토그램을 표시할 수 있습니다.
