제목 : Re : JSL - 왜 스크립트를 처음 실행하면 오류가 발생합니까?이런 식으로 시작해보십시오. 해당 평가에서 오류가 있습니까? 테이블에 "m"이라는 열이 있습니까?
For( m = 1, m <= Length( processArray ), m++,
show(m,processArray[m]); // <<<<<<
Eval( ...
당신은 중간 변수가 대체 결과를 가지고 (nameexpr을 출력하도록) 일어나고있는 것을 더 고립시킬 수 있습니다.
제목 : Re : JSL - 왜 스크립트를 처음 실행하면 오류가 발생합니까?첨가:
show(m,processArray[m]);
로그에 스크립트 결과가 표시됩니다.
m = 1;
processArray[m] = "DVT0002B";
따라서 오류가 Eval () 내부에 있어야합니까?
데이터 테이블에 "m"이라는 열이 없습니다.
제목 : Re : JSL - 왜 스크립트를 처음 실행하면 오류가 발생합니까?아주 멋진 스크립트!
이 버전을 사용해보십시오.
DataCV = Open( "$sample_data/big class.jmp" );
Summarize( DataCV, processArray = By( :age ) );
Summarize( DataCV, ctypeArray = By( :sex ) );
For( n = 1, n <= Length( ctypeArray ), n++,
Show( n, ctypeArray[n] );
For( m = 1, m <= Length( processArray ), m++,
Show( m, processArray[m] );
temp = Substitute(
Expr(
biv = Bivariate(
Y( :height ),
X( :weight ),
Where( :sex == __ctype__ & :age == Num( __process__ ) ),
Fit Spline( 0.1, standardized, {save predicteds} )
)
),
Expr( __process__ ), processArray[m],
Expr( __ctype__ ), ctypeArray[n],
);
Show( Name Expr( temp ) );
Eval( temp );
);
);
샘플 스크립트를 변경하고 NUM () 래퍼를 추가하고 중간 식을 인쇄하는 것 이외에는 아무 것도 변경하지 않은 것 같습니다. JMP 14에서는 설명하는 오류가 표시되지 않습니다.
숫자 나이 컬럼의 요약이 숫자가 아닌 문자열 목록을 만든 것처럼 보입니다. 따라서 num은 그것을 다시 변환합니다. 나는 이것이 당신이 묘사 한 원래 문제의 일부라고 생각하지 않습니다.
@EvanMcCorkle
제목 : Re : JSL - 왜 스크립트를 처음 실행하면 오류가 발생합니까?감사! 이것이 JMP를 처음 사용하는 것이고 파일 변환이 일반적인 JMP 응용 프로그램이 아니라고 생각하면 꽤 좋습니다.
여전히 스크립트를 처음 실행했을 때만 동일한 오류가 발생합니다 (아래 참조).
스크립트는 오류를 던지기 전에 : c_type x : process Where-clause 조합 중 하나에서 스플라인 중 하나를 생성하여 새 열에 저장합니다. 아래에 나와있는 for 루프를 한 번 완전히 반복했다는 것을 암시하십시오.
For( n = 1, n <= Length( ctypeArray ), n++,
생성 된 새로운 스플라인은 다음과 같습니다.
JMP 14를 업데이트하여 문제가 해결되는지 확인하려고합니다. 나는 JMP 13.0.0을 사용 해왔다.
Re : JSL-스크립트를 처음 실행할 때 오류가 발생하지만 두 번째로 작동하는 이유는 무엇입니까?뿡 빵뀨 문제를 찾았습니까? 첫 번째 실행에서만이 아니라 두 번째 실행에서만이 오류가 변수로 표시됩니다. JMP 15를 사용하고 있습니다.
Re : JSL-처음 스크립트를 실행할 때 오류가 발생하지만 두 번째로 작동하는 이유는 무엇입니까?던지려고 했습니까?
Names default to here(1);
스크립트 시작 부분에.
변수 m은 다른 스크립트에 의해 정의 될 수 있으며이 스크립트가 처음으로 덮어 쓸 때까지 여기에서 방해를받을 수 있습니다.
JSL-스크립트를 처음 실행할 때 오류가 발생하지만 두 번째로 작동하는 이유는 무엇입니까?
아래 표시된 스크립트를 처음 실행하면 'm', m / * ### * /에 대한 액세스 또는 평가에서 "이름 미해결 : m {36803}"오류가 반환되지만 이후의 모든 실행에서는 해당 오류가 반환되지 않습니다. 왜 이런거야?
DataCV = open ( "C : \ Desktop \ JMP \ sample_CV_data.csv"); Summarize (DataCV, processArray = By (: process)); Summarize (DataCV, ctypeArray = By (: c_type)); For (n = 1, n <= Length (ctypeArray), n ++, // : c_type 및 : process For (m = 1, m <= Length (processArray), m ++, Eval (Substitute (Expr (biv = Bivariate (Y (: c_mm_deembed_pf), X (: v_dut_volt), Where (: c_type == __ctype__ & : process == __process__), Fit Spline (0.1, 표준화 됨, {예측값 저장}))), Expr (__process__ ), processArray [m], Expr (__ctype__), ctypeArray [n],)));); (Data Table (DataCV) << Tabulate (// 새 테이블 생성 Add Table (Column Table (Analysis Columns (: Spline Predictor for c_mm_deembed_pf Where))), Row Table (Grouping Columns (: serial_num, : process, : c_type, : v_dut_volt ))))) << 데이터 테이블로 만들기; currentDataTable () << AddRows (1); // 빈 마지막 행을 추가하여 while 루프가 언제 끝났는지 알 수 있도록 q = 0; proc = "신규"; 나는 = 1; while (q == 0, // 중복 스플라인 삭제 (: process x : c_type combination) if (proc! = (Row () = i; : process), proc = (Row () = i; : process); sn = (Row () = i; : serial_num); i + = 1); if (proc == (Row () = i; : process) & sn == (Row () = i; : serial_num), i + = 1 ); if (proc == (Row () = i; : process) & sn! = (Row () = i; : serial_num), CurrentDataTable () << DeleteRows (i)); if ((Row () = i; : process) == "", q = 1;);); currentDataTable () << 행 삭제 (i); // 빈 마지막 행 삭제 currentDataTable () << new column ( "Index", character); cap = "신규"; for (k = 1, k <= NRows (currentDataTable ()), k ++, // ADS 인덱싱을위한 VAR 추가 if (cap! = : c_type [k], currentDataTable () << Add Rows (1, k-1) ; j = 1; cap = : c_type [k + 1]; proc = : process [k + 1]); if (j == 1, For Each Row (: Index = if (: c_type == "", " \! NVAR CURVE (1) = "|| char (cap) ||"\! NVAR TECH (1) = "|| char (proc) ||"\! NBEGIN \! N % ind (1) dep (1 ) ", : Index)); For Each Row (: c_type = if (: c_type ==" ", char (cap), : c_type)); j = 0);); currentDataTable () << 열 삭제 ( "c_type", "serial_num", "process"); // ind (1) 및 dep (1)을 제외한 모든 행 삭제 xptPref = Get Preferences (Export Settings); // .MDF 형식 Preferences (ExportSettings (End Of Line (CRLF), End Of Field (Tab), Export Table Headers (0))); currentDataTable () << 다른 이름으로 저장 ( "C : \ JMP \ GeneratedFiles \ RoughDraft2Output.mdf", "text"); // .MDF로 저장