나중에 사용할 수 있도록 그래프를 스크립트로 저장하는 경우가 많습니다. 그래프에 데이터 제외가 포함될 때까지 모두 잘 작동합니다. 예를 들어, (1) 백신을 맞은 환자와 (2) 백신을 맞지 않은 환자의 회복을 그래프로 표시하려고합니다. 두 그래프는 동일합니다 (동일한 변수, 축, 레이블 및 스타일). 단, (1)은 (이진) "백신 없음"조건을 제외하고 (2) "백신"조건은 제외합니다.
데이터 제외가 변경 될 때마다 그래프가 자체적으로 업데이트된다는 것을 알고 있습니다 (버그가 아니라 기능 임). 그래프의 스크립트에 데이터 제외를 저장하는 방법이 있습니까? , 스크립트를 실행할 때마다 그래프가 생성 될 때 데이터 제외를 기반으로 한 결과를 볼 수 있습니까?
이를 수행하는 방법에는 여러 가지가 있습니다. 그래프 스크립트가 새 데이터 테이블에 대해 실행되도록하려면 스크립트에서 데이터를 통과하는 스크립트에 JSL을 추가해야하며 해당 시점에 선택해야합니다. 작업이 동일한 데이터 테이블 설정으로 그래프를 다시 실행할 수있는 것이라면 수행해야 할 작업은 "행 상태"유형의 새 열을 만든 다음 실행 시점의 행 상태를 저장하는 것입니다. 새로운 행 상태 열에 그래프의. 그런 다음 새 열의 저장 행 상태를 데이터 테이블 행 상태로 복사 한 다음 그래프를 실행하기 위해 그래픽 스크립트를 보강해야합니다.
빠른 응답에 감사드립니다!
1)이를 수행하는 방법에 대한 설명을 지적 할 수 있습니까? "스크립트는 데이터를 통과하는 스크립트에 JSL을 추가해야하며 이때 선택을해야합니다."
2) 위의 솔루션으로 동일한 데이터 세트에서 제외를 지정할 수도 있다면 더 이상 말하지 마십시오. 그렇지 않으면이를 수행하는 방법에 대한 설명을 알려주십시오. "그런 다음 새 열의 저장 행 상태를 데이터 테이블 행 상태로 복사 한 다음 그래프를 실행하기 위해 그래픽 스크립트를 보강해야합니다."
또는 또 다른 접근 방식은 로컬 데이터 필터를 그래프의 일부로 사용하는 것입니다. 이렇게하면 사용자가 한 그룹에서 다른 그룹으로 쉽게 전환 할 수 있습니다.
다음은 데이터 테이블을 원래 그래프가 실행되었을 때의 상태로 재설정하기 위해 행 상태 열을 저장 한 다음 사용하는 예입니다.
names default to here(1);
// Open a sample data table
dt = open("$SAMPLE_DATA/big class.jmp" );
// Set some exclusions and row coloring
dt << select where(:age == 12 & :sex == "F" );
dt << hide and exclude;
dt << color by column(:age);
// Run the graph to get the results desired
Graph Builder(
Size( 522, 486 ),
Show Control Panel( 0 ),
Variables( X( :age ), Group X( :sex ), Overlay( :age ) ),
Elements( Bar( X, Legend( 8 ) ) ),
SendToReport( Dispatch( {}, "400", LegendBox, {Set Title( "" )} ) )
);
// To save the data table status at the time of the graph, simply
// create a new row state column, and copy the row states to it
dt << new column("My Row States", rowstate);
dt:My Row States << copy from row states;
// To illustrate what would needed to be added to the Graph Script
// to recreate the environment it was originally run in, I will first
// clear all of the row states to bring the table back to the
// default blank row states
dt << clear row states;
// Now all that has to be done, is to copy the rowstates from the row state
// column back to the data table row states, and then rerun the graph
dt:My Row States << copy to row states;
Graph Builder(
Size( 522, 486 ),
Show Control Panel( 0 ),
Variables( X( :age ), Group X( :sex ), Overlay( :age ) ),
Elements( Bar( X, Legend( 8 ) ) ),
SendToReport( Dispatch( {}, "400", LegendBox, {Set Title( "" )} ) )
);
이것이 귀하의 답변에 대한 완전한 답변이라고 생각하지 않지만 귀하가 무엇을 요구하고 있는지 확실하지 않았습니다. 요청한 내용을 다시 말하고 더 구체적인 내용을 제공 할 수 있습니까?