플롯에서 스크립트를 가져와 JSL 스크립트로 데이터 테이블에 저장하는 방법은 무엇입니까?플롯에서 스크립트를 추출하여 나중에 사용할 수 있도록 데이터 테이블에 저장하려고 합니다.
아래는 "샘플 데이터 라이브러리"의 "진통제" 테이블에 대한 스크립트인데, 제가 바랐던 대로 작동하지 않습니다.
"print(dtp_script)" 줄은 올바른 스크립트를 보여줍니다.
하지만 데이터 테이블에 저장된 실제 "plot_dt1" 스크립트에는 실제 스크립트 대신 "dtp_script" 변수 이름만 포함되어 있습니다. 실제 스크립트를 데이터 테이블에 어떻게 저장하나요? 감사합니다!
dt = current data table ();
dtplot = dt << Fit Group( Oneway( Y( :pain ), X( :gender ) ),
Oneway( Y( :pain ), X( :drug ) ),
<<{Arrange in Rows( 2 )} );
dtp_script = dtplot << get script;
print (dtp_script);
dt << new script("plot_dt1", dtp_script );
고급 통계 모델링자동화 및 스크립팅콘텐츠 구성데이터 블렌딩 및 정리실험 설계대량 맞춤화결과 공유 및 전달Re: 플롯에서 스크립트를 가져와 JSL 스크립트의 데이터 테이블에 저장하는 방법은 무엇입니까?감사합니다! 정말 도움이 됩니다!
Re: 플롯에서 스크립트를 가져와 JSL 스크립트의 데이터 테이블에 저장하는 방법은 무엇입니까?NameExpr(dtp_script)을 사용하면 dtp_script가 참조하는 표현식이 반환됩니다. 마지막 명령문에서 "dtp_script" 대신 이 표현식을 사용할 수 있습니다. 하지만 이렇게 하려면 JMP가 새 스크립트 메시지를 데이터 테이블에 전송하기 전에 NameExpr(dtp_script)를 평가하도록 해야 합니다. 마지막 명령문은 다음과 같습니다.
Eval(
EvalExpr(
dt << New Script("plot_dt1", Expr(Name Expr(dtp_script)))
)
)
EvalExpr()의 인수에 대해 Expr() 안에 있는 모든 것은 제자리에서 계산됩니다. EvalExpr()은 계산된 값이 Expr(...)을 대체하는 표현식을 반환합니다. 이 경우, dtp_script가 참조하는 표현식입니다. 이 부분이 명확하게 이해되셨기를 바랍니다. 표현식 조작에 대한 자세한 내용은 스크립팅 색인(도움말 -> 스크립팅 색인) 또는 스크립팅 가이드(도움말 -> JMP 문서 라이브러리)에서 확인할 수 있습니다.