secuencias de comandos de aplicaciones... Agrupar por , variableEstoy creando una aplicación que le permite al usuario seleccionar algunas opciones antes de ejecutar un script que involucra algunas consultas SQL y luego hacer algunos gráficos... nada demasiado loco.
Se utiliza un control de botón de radio para establecer el valor de una variable llamada "tipo".Quiero que una de las opciones de "ajustar donde" para un gráfico bivariado sea el contenido de esta variable...
Bivariate(
Y( :Current),
X( :Voltage),
Show Points( 0 ),
Fit Where(
:type == "cell",
Fit Each Value( {Report( 0 ), Line Color( {0, 0, 255} ), Report( 0 )} )
),
Fit Where(
:type == type, //this is troublesome line... the graph is generated but not quite right.
Fit Each Value( {Report( 0 ), Line Color( {213, 72, 87} ), Report( 0 )} )
),
By( :CellID)
);
El gráfico se genera correctamente, pero lo molesto es que el gráfico resultante dice "ajustar cada tipo de valor == tipo".¿Cómo puedo hacer que muestre el contenido de la variable que se usó en lugar de su nombre?He probado algunas opciones que ya incluyen "eval (tipo)".

Re: secuencias de comandos de la aplicación... Agrupar por , variableMuchas gracias por las rápidas respuestas. Olvidé copiarlo en mi ejemplo, pero el comienzo de mi secuencia de comandos comenzó con "nombres predeterminados aquí (1);" No crea que importa dónde aparece ese comando dentro del script, siempre que sea antes de la función relevante.
Primero probé el código de Jim y produjo el mismo problema que mi script original.El valor 13 no se mostró debajo del gráfico, sino "edad==edad".nota: estoy ejecutando JMP 12

Como estoy usando un nombre de variable que no coincide con una columna en mis tablas, no creo que me encuentre con el problema de que JMP intente asignar los valores de columna como lo menciona gzmorgan0.
El enfoque de usar 'agrupar por' en lugar de 'encajar donde' funcionó.Dado que copié este script de un bivariado creado a través de las opciones de menú "agrupar por", no estoy confundido en cuanto a por qué usó 'encajar donde' en su lugar.Pero ese es otro problema para otro día.Gracias por el infierno.
Re: secuencias de comandos de la aplicación... Agrupar por , variableJim tiene razón.
Sin Names Default To Here(1), todas las variables son globales. La Guía de secuencias de comandos de JMP establece
"Cuando una variable global y una columna tienen el mismo nombre,...En esta situación, debe definir el alcance del nombre de la columna".
De hecho, cuando ejecuto el script, aparece el error.
No se puede establecer el valor para la columna 'edad' porque el número de fila (-1) no es válido.
Dado que no es ::edad, JMP cree que la instrucción edad=13 intenta asignar valores a la columna denominada edad.Names Default To Here(1) hace que la variable "edad" sea local y resuelve este conflicto. Sin embargo, le recomiendo enfáticamente que use Nombres predeterminados hasta aquí (1) y use un nombre diferente para la entrada del usuario como, _age o usr_val.Creo que las colisiones de nombres (conflictos, también conocidos como alcance) son el segundo error de secuencias de comandos más alto después de la sintaxis y los errores tipográficos.
El siguiente guión es una ligera modificación del de Jim:
- A _edad se le asigna un valor
- una alternativa a Fit Where().Seleccionar los valores que se usarán y luego usar Agrupar por () proporcionará el nombre para cada valor de Agrupar por.
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
_age=13;
biv = dt << Bivariate(
Y( :weight),
X( :height),
Show Points( 0 ),
where(:age==12 | :age==_age),
Group By(:age),
Fit Each Value( {Report(0)}),
By(:sex)
);
biv << ( Curve[1] << Line Color ( {0, 0, 255 } ) );
biv << ( Curve[2] << Line Color ( {213, 72, 255 } ) );
Re: secuencias de comandos de la aplicación... Agrupar por , variableEl problema parece ser un problema de alcance.No pude ejecutar su secuencia de comandos con éxito hasta que agregué
Names Default to Here( 1 );
Aquí está su secuencia de comandos con los nombres de las columnas que apuntan a la tabla de datos de Big Class.
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
age=13;
Bivariate(
Y( :weight),
X( :height),
Show Points( 0 ),
Fit Where(
:age == 12,
Fit Each Value( {Report( 0 ), Line Color( {0, 0, 255} ), Report( 0 )} )
),
Fit Where(
:age == age, //this is troublesome line... the graph is generated but not quite right.
Fit Each Value( {Report( 0 ), Line Color( {213, 72, 87} ), Report( 0 )} )
),
By( :sex)
);