계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달계산된 통계로 여러 차트를 생성합니다. 특정 계산된 통계 매개변수(예: 최소값, 중앙값 및 최대값)를 전달하고 싶습니다. 분위수 및 표준 개발에서 요약 통계 JSL을 사용하여 저장된 데이터 테이블의 특정 좌표로.
예를 들어 나는 전달하고 싶습니다
- 행 5, 열 7까지 최소 분위수
- 행 5, 열 8의 중앙값
- 행 5, 열 9까지의 최대 분위수
- 5행 10열에 대한 표준 편차.
내 저장된 데이터 테이블에. JSL을 사용하여 이것을 달성하는 방법은 무엇입니까?
(저장된 데이터 테이블의 좌표는 비어 있습니다.)
데이터 테이블제도법스크립팅Re: 계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달제 생각에는 데이터 테이블 첨자 이것으로 당신을 도울 수 있습니다
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt[10,3] = "AAAAAAAAAAAAAA";Re: 계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달안녕하세요 @네오
이 스크립트에서 필요한 것을 추출할 수 있는지 확인하십시오.
Names Default To Here( 1 );
// set up a table to accept the results
resultsdt = New Table( "Results Table",
Add Rows( 20 ),
New Column( "Column 1" ),
New Column( "Column 2" ),
New Column( "Column 3" ),
New Column( "Column 4" ),
New Column( "Column 5" ),
New Column( "Column 6" ),
New Column( "Min", Numeric ),
New Column( "Median", Numeric ),
New Column( "Max", Numeric ),
New Column( "SD", Numeric )
);
// Open Data Table: Big Class.jmp
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Launch platform: Distribution
output = Report( dist = dt << Distribution( Continuous Distribution( Column( :height ) ) ) );
// Extract min median max and SD
resultsdt[5, 7] = output[Outline Box( "height" ), Outline Box( "Quantiles" ), Table Box( 1 ), Number Col Box( 1 )] << get( 11 ); // min
resultsdt[5, 8] = output[Outline Box( "height" ), Outline Box( "Quantiles" ), Table Box( 1 ), Number Col Box( 1 )] << get( 6 ); // median
resultsdt[5, 9] = output[Outline Box( "height" ), Outline Box( "Quantiles" ), Table Box( 1 ), Number Col Box( 1 )] << get( 1 ); // max
resultsdt[5, 10] = output[Outline Box( "height" ), Outline Box( "Summary Statistics" ), Number Col Box( 1 )] << get( 2 ); // Std dev.
출력에서 숫자를 추출할 때 주의해야 합니다. 기본 설정으로 인해 출력이 다르거나 하나의 창에 여러 출력이 포함된 경우 위치에 대한 올바른 참조가 변경될 수 있습니다.
작동하는지 알려주십시오.
론
Re: 계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달감사 해요 @ron_horne . 나는 이것이 효과가 있을 것이라고 생각한다. 그러나 실제 문제에서 이것을 시도하기 전에 한 가지 질문이 있습니다. 값이 전달되기 전에 "결과 테이블"을 열어야 합니까?
제 경우에는 "결과 테이블"이 저장된 파일이고 다른 방법으로 값을 전달할 수 없는 경우가 아니면 열 계획이 없었습니다.
(값이 전달될 때 인스턴스에서 "결과 테이블"을 열어야 하는 경우 나머지 코드를 변경해야 합니다.)
Re: 계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달
안녕하세요 @네오
내가 아는 한 JMP에서는 닫힌 테이블의 셀에 데이터를 설정할 수 있는 방법이 없습니다.
여기에서 더 잘 아는 사람이 있으면 알려주십시오.
정보를 수집하는 동안 정보를 유지하기 위해 중개자로서 다른 테이블을 열 수 있으며 마지막에야 최종 결과 테이블을 열 수 있습니다.
론
Re: 계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달@ron_horne . 감사 해요. 내가 가질 수 있도록 다시 코딩하는 데 시간이 걸렸습니다. 계산된 통계의 값에 대해 열린 "결과 테이블"이 여기에 전달될 수 있습니다.
나는 당신의 제안으로 시작했고 신에게 질문이 있습니다. 왜 이것이 작동하지 않습니까?
distb = Distribution( Continuous Distribution( Column( :height ) ) ) ;
// Extract min median max and SD
resultsdt[5, 7] = distb[Outline Box( "height" ), Outline Box( "Quantiles" ), Table Box( 1 ), Number Col Box( 1 )] << get( 11 ); // min
resultsdt[5, 8] = distb[Outline Box( "height" ), Outline Box( "Quantiles" ), Table Box( 1 ), Number Col Box( 1 )] << get( 6 ); // median
resultsdt[5, 9] = distb[Outline Box( "height" ), Outline Box( "Quantiles" ), Table Box( 1 ), Number Col Box( 1 )] << get( 1 ); // max
resultsdt[5, 10] = distb[Outline Box( "height" ), Outline Box( "Summary Statistics" ), Number Col Box( 1 )] << get( 2 ); // Std dev.
그리고 왜 그래야 합니까?
output = Report( dist = dt << Distribution( Continuous Distribution( Column( :height ) ) ) );
distb1, distb2와 같은 이름을 쉽게 지정할 수 있는 여러 분포도가 있습니다. 하지만 필요한 경우
output = Report( dist = dt << Distribution( ..... ) );
이것이 나머지 코드에 어떤 영향을 미치는지 확인해야 합니다.
Re: 계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달안녕하세요 네오입니다.
distb에 대한 참조가 작동하지 않습니다. distb는 보고서 레이어가 아닙니다. 분석 레이어입니다. JMP에는 차이점이 있습니다.
출력에서 무엇이든 추출하려면 보고서 계층을 명시적으로 참조해야 합니다.
이것 좀 봐: https://community.jmp.com/t5/JSL-Cookbook/Extract-Statistics-from-an-Analysis-into-a-Report/ta-p/41547
출력이 여러 개인 경우 목표로 하는 값을 얻을 수 있도록 올바르게 이름을 지정하고 정의해야 합니다.
작동하는지 알려주십시오. 그렇지 않으면 문제를 일으키는 지점에서 일부 파일과 스크립트를 제공하는 것이 좋습니다.
모두 제일 좋다,
론
Re: 계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달감사 해요 @ron_horne . 내가 하려고 하는 것에 대한 개요를 제공하려고 합니다. 내 기본 스크립트에는 다음과 같은 (여기서 단순화된) 흐름이 있습니다.
데이터 테이블을 열고 dt ) 그런 다음 함수를 사용하여 여러 열에 대한 분포도를 그립니다.
getDistribution ("ColName", "LSL", "USL", "other input parameters")
각 결과 분포도에는 "Quantile", "Summary Statistics" 및 "Capability Analysis(outline Closed)"가 있습니다.
메인 스크립트의 다음 부분은 테이블을 생성하는 것입니다. 결과 dt ) 원본 게시물에 표시된 대로 계산된 통계 값을 전달해야 하는 여러 행과 열이 있습니다.
그러나 다음은 작동하지 않습니다.
output = Report( dist = dt << getDistribution("ColName", "LSL", "USL", "other input parameters") );
resultsdt[5, 9] = Output[Outline Box( "height" ), Outline Box( "Quantiles" ), Table Box( 6 ), Number Col Box( 11)] << get( 1 ); // max
Table Box()와 Number Col Box()의 숫자가 맞는지 확인했습니다. 다음 오류가 발생합니다.
Send Expects Scriptable Object{8} in access or evaluation of 'Send' , output[Outline Box( "height" ), Outline Box( "Quantiles" ),
Table Box( 6 ), Number Col Box( 11 )] << /*###*/get( 1 ) /*###*/
내가 어디로 잘못 가고 있습니까?
Re: 계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달안녕하세요 @네오 ,
문제를 올바르게 이해했다면 번호와 주소에 주의를 기울여야 합니다. 개요 상자의 이름을 사용하면 테이블 상자와 번호 열 상자의 번호는 1부터 시작합니다.
따라서 다음을 시도하십시오.
resultsdt[5, 9] = Output[Outline Box( "height" ), Outline Box( "Quantiles" ), Table Box( 1 ), Number Col Box( 1)] << get( 1 ); // max
Number Col Box(11)를 사용하려면 다음을 시도하십시오.
resultsdt[5, 9] = Output[Number Col Box( 11)] << get( 1 ); // max
이것이 이제 작동하기를 바랍니다.
일반적으로 이 링크에서와 같이 xpath() 또는 패턴 일치를 사용하여 관심 있는 값의 위치를 찾도록 스크립트를 가져오는 훨씬 더 멋진 방법이 있습니다. http://www.pega-analytics.co.uk/blog/oneway-advisor-step-3/
Re: 계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달다시 한번 감사합니다 @ron_horne , 그러나 둘 다 작동하지 않고 동일한 오류가 발생합니다.
다음이 올바르고 유효한 사용법이라는 말씀이신가요? 참고하세요 음모를 꾸미지 않는다 아래와 같이 사용하는 경우 분포 (btw의 기능을 이해하지 못합니다 거리 ~에 거리=dt ?)
Output = Report( dist = dt << getDistribution("ColName", "LSL", "USL", "other input parameters") );
및 오류(로그에서 복사)
Send Expects Scriptable Object{8} in access or evaluation of 'Send' , Output[Outline Box( "height" ), Outline Box( "Quantiles" ),
Table Box( 1 ), Number Col Box( 1 )] << /*###*/get( 1 ) /*###*/Not subscriptable value{8} in access or evaluation of 'Assign' , resultsdt[5, 9] = /*###*/Output[Outline Box( "Pass Distribution" ),
Outline Box( "Quantiles" ), Table Box( 1 ), Number Col Box( 1 )] << /*###*/get( 1 ) /*###*/
/*###*/
나는 다음 진술로 인한 것입니다 (아래에 귀하의 제안이 있더라도)
resultsdt[5, 9] = Output[Outline Box( "height" ), Outline Box( "Quantiles" ), Table Box( 1 ), Number Col Box( 1)] << get( 1 ); // max
그렇다면 간단한 테스트를 수행하고 보다 간단한 결과를 resultsdt에 전달하고 싶습니다. 에서 무엇이든 얻을 수 있는지 테스트하기 위해 수행할 수 있는 간단한 테스트가 있습니까? 산출 데이터 테이블에 결과 dt ?
Re: 계산된 통계의 항목을 저장된 데이터 테이블의 특정 좌표로 전달@ron_horne . 다음은 내 실제 문제와 매우 유사하므로 좀 더 명확하게 하는 데 도움이 될 것입니다. 함수를 통해 분포도를 얻습니다.
Names Default To Here (1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
getDistChart = Function({ColName, _LSL, _USL}, {distChart},
New Window(""||ColName||" distribution",
Distribution(
Stack( 1 ),
Continuous Distribution(
Column(As Column (ColName) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Capability Analysis( LSL(_LSL ), USL(_USL) )
),
SendToReport(
Dispatch(
{},
"Distrib Histogram",
FrameBox,
{DispatchSeg( LabelSeg( 1 ), {Font( "Segoe UI", 7, "Plain" )} ),
DispatchSeg( LabelSeg( 2 ), {Font( "Segoe UI", 7, "Plain" )} )}
)
)
);
);
return(distChart);
);
dist = dt << getDistChart ("weight", 55, 185);
나에게 마지막 줄은 분포에서 값을 추출하기 위해 수행해야 하는 작업을 수행하지 않는 것으로 보입니다. 처음에는 분포가 표시되지 않기 때문입니다. 이제 문제는 위의 광산과 같은 함수를 통해 분포를 플로팅할 때 계산된 통계 값을 얻는 방법입니다. 아마도 함수는 메시지가 아니므로 <