Re: JSL - ¿Por qué recibo un error al ejecutar el script por primera vez, pero el segundo funciona en adelante?Intenta algo como esto para empezar. ¿Está el error en ese Eval? ¿La tabla tiene una columna llamada "m"?
For( m = 1, m <= Length( processArray ), m++,
show(m,processArray[m]); // <<<<<<
Eval( ...
Puede aislar aún más lo que está sucediendo con una variable intermedia para mantener (e imprimir el nombre expr) el resultado del sustituto.
Re: JSL - ¿Por qué recibo un error al ejecutar el script por primera vez, pero el segundo funciona en adelante?Añadiendo:
show(m,processArray[m]);
a los resultados del script en el registro que muestra:
m = 1;
processArray[m] = "DVT0002B";
por lo tanto, el error debe estar dentro de la Eval ()?
La tabla de datos no tiene columnas llamadas "m".
Re: JSL - ¿Por qué recibo un error al ejecutar el script por primera vez, pero el segundo funciona en adelante?Guión muy bien!
Prueba esta version
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 );
);
);
Aparte del cambio a una secuencia de comandos de muestra y al agregar la envoltura NUM () e imprimir la expresión intermedia, no creo que haya cambiado nada. En JMP 14, no veo el error que describe.
Parece que el resumen de la columna de edad numérica hizo una lista de cadenas en lugar de números, por lo que num la vuelve a convertir. No creo que esto sea parte del problema original que describiste.
@EvanMcCorkle
Re: JSL - ¿Por qué recibo un error al ejecutar el script por primera vez, pero el segundo funciona en adelante?¡Gracias! Me siento bastante bien al respecto, ya que esta es la primera vez que uso JMP y que la conversión de archivos no es una aplicación JMP típica.
Sigo recibiendo el mismo error, solo la primera vez que ejecuto el script, como se muestra a continuación.
La secuencia de comandos incluso genera y guarda una de las splines de una de las combinaciones: c_type x: process donde-cláusula, en una nueva columna, antes de lanzar el error. Lo que implica que pasó por una iteración completa del bucle for que se muestra a continuación:
For( n = 1, n <= Length( ctypeArray ), n++,
La 1 spline que se creó y guardó en una nueva columna se muestra a continuación:
Voy a intentar actualizar a JMP 14, para ver si eso resuelve el problema. He estado usando JMP 13.0.0
Re: JSL - ¿Por qué aparece un error al ejecutar el script la primera vez, pero la segunda vez funciona?@ adjo9835 Encontraste el problema? También recibo este error con una variable, solo en la primera ejecución, pero no en la segunda. Estoy usando JMP 15
Re: JSL - ¿Por qué aparece un error al ejecutar el script la primera vez, pero la segunda vez funciona?¿Has intentado lanzar un
Names default to here(1);
al comienzo de su guión.
Su variable m podría estar definida por otro script y podría estar interfiriendo aquí hasta que se sobrescriba por primera vez con este script.
JSL: ¿por qué aparece un error al ejecutar el script la primera vez, pero la segunda vez funciona?
La primera vez que se ejecuta la secuencia de comandos que se muestra a continuación devuelve este error "Nombre sin resolver: m {36803} en el acceso o evaluación de 'm', m / * ### * /", mientras que cada ejecución posterior no devuelve ese error. ¿Por qué es esto?
DataCV = open ("C: \ Desktop \ JMP \ sample_CV_data.csv"); Resumir (DataCV, processArray = By (: process)); Resumir (DataCV, ctypeArray = By (: c_type)); For (n = 1, n <= Length (ctypeArray), n ++, // Genera y guarda todas las splines por: c_type y: process For (m = 1, m <= Length (processArray), m ++, Eval (Substitute (Expr (biv = Bivariate (Y (: c_mm_deembed_pf), X (: v_dut_volt), Donde (: c_type == __ctype__ &: process == __process__), Fit Spline (0.1, estandarizado, {guardar predicciones}))), Expr (__process__ ), processArray [m], Expr (__ctype__), ctypeArray [n],)));); (Data Table (DataCV) << Tabulate (// Create new table Add Table (Column Table (Analysis Columns (: Spline Predictor for c_mm_deembed_pf Where)), Row Table (Agrupación de columnas (: serial_num,: process,: c_type,: v_dut_volt ))))) << Convertir en tabla de datos; currentDataTable () << AddRows (1); // Agrega una última fila vacía para que el bucle while sepa cuándo está al final q = 0; proc = "nuevo"; i = 1; while (q == 0, // Eliminar splines redundantes (: proceso x: combinaciones de c_type) if (proc! = (Row () = i;: process), proc = (Row () = i;: process); sn = (Fila () = i;: serial_num); i + = 1); if (proc == (Row () = i;: proceso) & sn == (Row () = i;: serial_num), i + = 1 ); if (proc == (Row () = i;: proceso) & sn! = (Row () = i;: serial_num), CurrentDataTable () << DeleteRows (i)); if ((Row () = i;: proceso) == "", q = 1;);); currentDataTable () << Eliminar filas (i); // Eliminar la última fila vacía currentDataTable () << nueva columna ("Índice", carácter); cap = "nuevo"; for (k = 1, k <= NRows (currentDataTable ()), k ++, // Agregar VAR para la indexación de ADS if (cap! =: c_type [k], currentDataTable () << Agregar filas (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 ) ",: Índice)); Para cada fila (: c_type = if (: c_type ==" ", char (cap),: c_type)); j = 0);); currentDataTable () << eliminar columnas ("c_type", "serial_num", "process"); // Elimina todas las filas excepto ind (1) y dep (1) xptPref = Obtener preferencias (configuración de exportación); // Preferencias de formato .MDF (ExportSettings (End Of Line (CRLF), End Of Field (Tab), Export Table Headers (0))); currentDataTable () << Guardar como ("C: \ JMP \ GeneratedFiles \ RoughDraft2Output.mdf", "texto"); // Guardar como .MDF