Pensé que había encontrado una solución con mi último mensaje, pero resultó que el problema es más complicado de lo que pensaba. Creé una matriz de cadenas, basada en los valores contenidos en una de mis columnas. Luego, quiero pasar por encima de la función Bivariate (), iterar a través de valores de matriz mientras se pasan a la cláusula Where. Cuando ejecuto el script, las Splines se generan correctamente, sin embargo, el comando {save predicteds} no funciona correctamente. Las únicas predicciones que se guardan pertenecen al último elemento de la matriz, y no a los otros elementos. Parece que {save predicteds} solo se ejecuta una vez, al final de mi bucle for / solo para el último elemento de ProcessArray, en lugar de ejecutarse para cada iteración del bucle for / cada elemento de ProcessArray.
l = 0;
Proc = "new";
ProcessArray = {};
DataCV=open("C:\Desktop\JMP\sample_data.csv")<BR />
For (l = 1, l < 32521, l++, // Create array of strings
if (proc == (Row()=l; :process),
print("same process"),
Insert Into(processArray, (Row()=l; :process)); proc = (Row()=l; :process); Show(proc)
);
);
for (n = 1, n <= length(processArray), n++, // Create and save multiple splines, for all values of ProcessArray[]
Bivariate(
Y( :c_mm_deembed_pf ),
X( :v_dut_volt ),
Where( :c_type == "Cdg" & :process == ProcessArray[n] ),
Fit Spline( 0.1, standardized, {save predicteds})
);
);

@ adjo9835 ,
Cuando especifique Guardar pronosticado mientras usa una cláusula Where (), la fórmula pronosticada resultante se verá así

Esto se creó con un código rígido donde los valores de la cláusula Where (). Si miras los títulos en cada una de tus ventanas bivariadas, esto indica:
Where( :c_type == "Cdg" & :process == ProcessArray[n] )
JMP calculará las splines correctamente, sin embargo, no sustituye el valor de ProcessArray [n].
Le sugiero que modifique el bucle bivariado a este
for (n = 1, n <= length(ProcessArray), n++, // Create and save multiple splines, for all values of ProcessArray[]
Eval( EvalExpr( Bivariate(
Y( :c_mm_deembed_pf ),
X( :v_dut_volt ),
Where( :c_type == "Cdg" & :process == Expr(ProcessArray[n] ) ),
Fit Spline( 0.1, standardized, {save predicteds})
) ) );
); //end for
Además, si desea obtener una lista de valores únicos en la columna: proceso, puede hacerlo simplemente con Summarize () o Associative Array (). Vea la secuencia de comandos a continuación utilizando una tabla de datos de muestra JMP.
Names Default to Here(1);
dt = Open("$Sample_Data/SATByYear.jmp");
r_aa = (Associative Array(:Region)) << get keys;
show(r_aa);
summarize( rarray = By(:Region));
show(rarray);
for(n=1, n <= nitems(rarray), n++,
Eval (EvalExpr(
Bivariate(
Y( :SAT Math),
X( :Year),
Where( :Region == Expr( rarray[n] ) ),
Fit Spline( 0.1, standardized, {save predicteds})
)
))
);