아래 스크립트는 "Get Estimates" 메시지에 대한 스크립팅 인덱스 항목 중 하나에서 가져온 것입니다. 반환된 객체는 목록입니다. 목록의 개별 요소를 쉽게 구문 분석할 수 있습니까? Type(estimate[n]), "Name". 예를 들어 estimate[2]는 일관된 데이터 구조를 포함하는 것으로 보입니다. 예를 들어 "Time End"로 표시된 행렬을 반환하려면 어떻게 해야 합니까?
"<< Get Estimates"에서 출력된 모든 정보는 궁극적으로 "<< Get Report"를 통해 액세스하고 디스플레이 상자 계층을 해독할 수 있다는 것을 알고 있습니다. 그러나 "Get Estimates"의 간결하고 쉽게 해석할 수 있는 구조는 사용하기 쉽고 더 간단한 코드가 될 수 있을 것 같습니다.
//scripting index script
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Reliability/Fan.jmp" );
obj = dt <<
Life Distribution(
Y( :Time ),
Censor( :Censor ),
Fit Exponential,
Set Scale( Exponential )
);
estimate = obj << Get Estimates;
Show( estimate );
//=======================
//content of estimate[2]
nonparametric estimate(
{Time Start(
[450, 1150, 1150, 1600, 2070, 2070, 2080, 3100, 3450, 4600, 6100, 8750]
), Time End(
[1150, 1150, 1600, 2070, 2070, 2080, 3100, 3450, 4600, 6100, 8750, 11500]
), Estimate(
[0.0142857142857142, 0.0287815126050419, 0.0432773109243697,
0.0579961215255332, 0.0751234647705236, 0.0922508080155139,
0.109378151260504, 0.128327552297515, 0.147698051135348, 0.17276575551372,
0.204582457224731, 0.292962184199761]
), Standard Error(
[0.0141833064113421, 0.0200581923902226, 0.024441823837429,
0.0281508958436217, 0.0324334709625386, 0.0360727593407561,
0.0392481174087784, 0.0427434474191106, 0.0459737153753552,
0.0509999042262761, 0.0581216781767556, 0.098041976927893]
)}
)어떻게 분석하고 싶으신가요? 이 정보로 JMP에서 이와 같은 목록을 사용할 수 있을까요?
estimate["nonparametric estimate"]["Time End"]
이런 경우에는 다음과 같은 아름다운 대본을 활용해보세요.
End = Arg( Arg( Arg( estimate[2], 1 ), 2 ), 1 );
아니면 @jthi 의 훨씬 더 나은 것을 사용하세요.
완벽하게 작동합니다. 감사합니다! 그런 유형의 데이터 구조가 문서화되어 있나요? 찾지 못했습니다.
목록에 대한 설명은 Scripting Guide Scripting Guide > Data Structures > Lists in JSL Scripts 에 꽤 많이 나와 있습니다. 그 동작도 어딘가에 문서화되어 있다고 생각하지만 목록 섹션에 없을 수도 있습니다... 순전히 운 좋게도 얻었고 온갖 것을 시도해 보았거나 그것에 대해 읽었을 수도 있습니다(설명서에서 찾아보고 찾으면 편집하겠습니다). @EvanMcCorkle
편집: 최소한 여기에서 언급된 것을 발견했습니다(처음에 여기에서 찾지는 못했지만 언급되어 있습니다) 스크립팅 가이드 > 데이터 구조 > JSL 스크립트의 목록 > 목록의 하위 스크립트
