교차표 테이블에서 새 테이블로 전송할 때 잘못된 반올림안녕,
저는 JMP 버전 16을 사용하고 있습니다.
CrossTab 테이블에서 데이터를 전송하고 있습니다. 소수점 셋째 자리까지 반올림하도록 설정했습니다. 그런 다음 데이터를 문자열로 저장하고, 이 문자열을 사용하여 결과를 테이블에 출력합니다. 아래 코드를 참조하세요.
// Get data from CrossTab table
crossTab = reportFitmod[Outline Box( "LSMeans Differences Student's t" )][CrosstabBox( 1 )] << get as matrix;
meandiff = Round( crossTab[1, 2] , 3 );
lowerCL = Round( crossTab[3, 2] , 3 );
upperCL = Round( crossTab[4, 2] , 3 );<BR /><BR /> // Create the Difference in mean and CL string<BR />Insert Into( dif, Char( meandiff ) || " [" || Char( lowerCL ) || " ; " || Char( upperCL ) || "]" );
보고에 관해 두 가지 질문이 있습니다.
1. 소수점 이하 3자리까지 보고하도록 지정되어 있는데도 0.020 대신 0.019를 0.02로 보고하는 이유는 무엇입니까?
2. 예전에는 잘 작동했는데, 지금은 작동하지 않습니다. 0.0015 값을 0.002가 아닌 0.001로 반올림합니다. 왜 이런 현상이 발생하는지, 그리고 어떻게 해결해야 하는지 아시는 분 계신가요? 일반적인 반올림 규칙(4회 이하 반올림, 5회 이상 반올림)을 유지하고 싶습니다.
기본 데이터 분석 및 모델링Re: 교차표 테이블에서 새 테이블로 옮길 때 잘못된 반올림1. JMP에서 추가 0을 원하시면 형식을 지정하고 문자열로 변환해야 한다고 생각합니다.
Format(1.100, "Fixed Dec", 10, 3)
2. 0.0015를 반올림하고 다른 값을 반올림하고 있는 게 맞나요? 행렬의 실제 값은 무엇인가요? 플랫폼에서 0.0015를 표시하더라도 실제로는 더 정확할 가능성이 높습니다. 예를 들어 0.00149는 0.0015로 반올림됩니다.
Re: 교차표 테이블에서 새 테이블로 옮길 때 잘못된 반올림안녕하세요, Jarmo님.
답변 감사합니다!
1. 이걸 시도해볼게요. 고맙습니다.
2. 교차 분석으로 이동하여 두 번째 열, 행 1, 행 3, 행 4(평균[i]-평균[j], 하위 CL 차이 및 상위 CL 차이)를 가져와야 합니다.
아래 그림을 보세요.

평균 차이는 이 라인에 인쇄됩니다.
meandiff = Round( crossTab[1, 2] , 3 );
소수점 셋째 자리까지 반올림해야 하고, 일반적인 반올림 규칙에 따라 반올림해야 합니다. 그런데 반올림이 제대로 되지 않아서 뭐가 잘못된 건지 알 수가 없습니다.
Re: 교차표 테이블에서 새 테이블로 옮길 때 잘못된 반올림실제로 표시되는 값을 확인해 보셨나요? JMP 보고서에 표시되는 값은 이미 반올림된 값일 가능성이 높습니다. 이 작업은 JMP18에서 수행됩니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Drug.jmp");
obj = Fit Model(
Y(:y),
Effects(:Drug, :x),
Personality(Standard Least Squares),
Emphasis(Effect Leverage),
<< Run(:Drug << {LSMeans Student's t(.05, Ordered Differences Report(1))})
);
m = Report(obj)["Response y","Drug","LSMeans Differences Student's t",CrosstabBox(1)] << get as matrix;
show(m);

Re: 교차표 테이블에서 새 테이블로 옮길 때 잘못된 반올림다음 줄을 실행할 수 없습니다.
m = Report(obj)[ :Result , :Person , "LSMeans Differences Student's t" , CrosstabBox(1)] << get as matrix;
그래서 대신 정렬된 차이 보고서를 열었습니다. 여기서 전체 차이가 0.0015000인 것을 확인할 수 있습니다. 즉, 이중 반올림이 적용되지 않은 것입니다.

Re: 교차표 테이블에서 새 테이블로 옮길 때 잘못된 반올림당신은 이미 매트릭스를 추출하기 위한 스크립트를 가지고 있었습니다.
crossTab = reportFitmod[Outline Box( "LSMeans Differences Student's t" )][CrosstabBox( 1 )] << get as matrix;
crossTab을 인쇄하여 값을 확인하세요.
Re: 교차표 테이블에서 새 테이블로 옮길 때 잘못된 반올림아, 고맙습니다! 결과를 확인해 보니 소수점 둘째 자리(3자리)로 반올림했을 때와 다르게 반올림되는 것 같습니다.
crossTab = [0 0.00149999999999987, 0 0.000298142396959379, 0 0.000835697341910363, 0 0.00216430265808938, -0.00149999999999987 0, 0.000298142396959379 0, -0.00216430265808938 0, -0.000835697341910363 0];
귀하의 도움에 감사드립니다:)