배포 보고서 작업을 할 때 유용한 메소드 및 속성을 포함하는 Class 객체를 만들려고합니다.
보고서 나 데이터 테이블을 필터링하지 않고 필터를 적용하려고 시도 할 때 문제가 발생하기 시작하면 보고서를 작성하고 싶습니다.
주요 문제는 필터를 반영하지 않은 값을 가져오고 저장하기 위해 디스플레이 트리로 들어갈 때 보고서를 필터링 한 후입니다. 예를 들어 분석하려는 열이 필터링 전에 평균 132 일 경우 분산 보고서를 필터링 한 후 134의 평균에 평균 134가 표시되지만 디스플레이 트리는 132를 출력합니다.
Make Distribution = Method({filter={}},
Try(
Column(dt,col) << Set Name("Data");
show(NItems(filter)!=0);
If(
NItems(filter)!=0,
dist = dt << Distribution(
Automatic Recalc( 1 ),
Continuous Distribution( Column( :Data ),
Local Data Filter(
Add Filter(Where(:Data >= filter[0] & :Data<= filter[1]))
)
),
),
dist = dt << Distribution(Automatic Recalc(1),Continuous Distribution(Column(:Data)));
);
rdist = dist << Report;
show(rdist[1]);
tmp = rdist["Summary Statistics"][NumberColBox(1)] << Get As Matrix;
mean = tmp[1];
stdev = tmp[2];
std_err_mean = tmp[3];
up_95_mean = tmp[4];
low_95_mean = tmp[5];
N = tmp[6];
dist_graph = rdist[OutlineBox("Data")][PictureBox(1)];
Column(dt,"Data") << Set Name(col);
,
Throw("Error in Making Distribution: "||char(exception_msg))
);
);위의 방법은 배포 보고서를 만들고, 로컬 필터를 추가하고, 표시 트리에서 요약 통계 값을 가져 오는 방법입니다.
또한 Select Where와 Delete Rows 루틴을 사용해 보았지만 Select 메서드는 메서드가 내부에있을 때 아무 것도하지 않습니다.
Filter Table = Method({filter},
dt << Select Where(Column(dt,col)<FILTER>filter[2]);
dt << Delete Rows;
);</FILTER>나는 꽤 자주 다양한 요약 통계 또는 배포 보고서에서 요소를 가져와야하기 때문에이 작업을 수행하고 있으며 이는 쉽게 구문을 바꾸고 쉽게 변경할 수 있습니다.
이 게시물에 전체 수업을 첨부했습니다.
어떤 도움을 주시면 감사하겠습니다.
안녕하세요,
JMP 13에서 비슷한 행동을 보았 기 때문에 응답하고 있습니다. 첨부 된 데이터 필터가있을 때 Column에 값을 설정하고 테이블 정렬 및 테이블 요약 조작을 수행 할 수 있지만 행 선택으로 임의의 결과가 나타납니다. 내 일은 열 값을 벡터 (수치 열이라고하는 분석)로 사용하고 loc () 함수를 사용했습니다. 그런 다음 내 계산을 수행하고 그에 따라 테이블 값을 업데이트했습니다.
JMP 지원이 통보되었습니다. 당신이 묘사 한 행동이 같아 보이는 것처럼 나는이 블로그 포스트를 보도록 플래그를 달 것입니다.
@awsmagala ,
플랫폼의 적용 후에 데이터 테이블의 생성 사이에 대기 시간을 사용하여 작은 지연을 도입하는 것이 좋습니다.
Wait(0.1);