Cambiando la leyenda de la fila por variableEstoy tratando de automatizar algunas parcelas bivariadas pero tengo un problema tratando de cambiar las leyendas de las filas.
Aquí hay un ejemplo de lo que estoy tratando de hacer:
Open("$SAMPLE_DATA/Big Class.jmp");
variables = {"age", "sex"};
for(v=1,v<=nitems(variables),v++,
::var = variables[v];
biv = Bivariate( Y( :height), X( :weight),
group by(as column(::var)),
Fit Spline( 1, Standardized, {Line Width( 2 )} ));
Report( biv )[Frame Box(1)] << Row Legend( ::var, color(1), marker(1));
); Mi salida esperada sería dos ventanas con parcelas idénticas: una con ajuste de spline y leyenda para la edad y otra con una leyenda de ajuste con spline para el sexo. Los ajustes de spline funcionan como se esperaba, pero el comando de leyenda de la fila no reconoce mi variable. ¿Qué me estoy perdiendo?
¡Gracias por adelantado!
Re: Cambiando la leyenda de la fila por variableExplicación muy útil. ¡Gracias!
Re: Cambiando la leyenda de la fila por variableLa razón de la diferencia es porque los requisitos de las 2 declaraciones diferentes. El Fit Spline que mencionas no tiene una referencia variable, por lo que supongo que en realidad estás cuestionando por qué Group By no necesita un Eval (). El razonamiento es la composición de los requisitos para Group By y Row Legend. El Group By es una declaración muy simple, que tiene una flexibilidad muy limitada. Sabe que uno tiene que estar especificando una columna. De hecho, el código se ejecutará muy bien incluso sin la función As Column (). Pasando a la Leyenda de la fila, este elemento puede tomar muchos formatos diferentes y sin el Eval () el analizador intentará utilizar la cadena real de :: var como parte de la información, y :: var no es lo que usted analizó, el valor de :: var es lo que desea analizar.
Re: Cambiando la leyenda de la fila por variable¡Gracias!
Pregunta secundaria para ayudarme a comprender la evaluación de variables: ¿por qué el ajuste de spline funciona sin eval ()? ¿Cuándo necesita evaluar la variable y cuándo no necesita ser evaluada?
Re: Cambiando la leyenda de la fila por variableSolo necesitas evaluar () la variable :: Var
Open("$SAMPLE_DATA/Big Class.jmp");
variables = {"age", "sex"};
for(v=1,v<=nitems(variables),v++,
::var = variables[v];
biv = Bivariate( Y( :height), X( :weight),
group by(as column(::var)),
Fit Spline( 1, Standardized, {Line Width( 2 )} ));
Report( biv )[Frame Box(1)] << Row Legend( eval(::var), color(1), marker(1));
);