String Col Box: cómo pasar una lista de cadenas a un String Col Box como N cadenas individuales.Hola,
Tengo un problema con un cuadro de columna de cadena de contorno. Por favor, vea la imagen adjunta. 
Mi problema es que en lugar de poder proporcionar cada cadena individualmente como en el primer ejemplo, solo puedo proporcionar una lista de cadenas como la variable "ListOfStrings" en la imagen.
En lugar de tener xyz en tres filas diferentes como en la primera tabla, los tengo en la misma fila, lo que no funciona conmigo.
Viviría cualquier orientación en este asunto. Necesito poder proporcionar una lista de cadenas y seguir teniendo el mismo formato de salida que la primera tabla.
Automatización y secuencias de comandosAnálisis y modelado de datos básicosAcceso a los datosRe: String Col Box: cómo pasar una lista de cadenas a un String Col Box como N cadenas individuales.Y si sus x, y, x, w son números, no puede usarlos en String Col Box ya que es solo para cadenas (conviértalos primero en caracteres si ese es el caso o use Number Col Box). Recibirá un mensaje de error como
Not a string in access or evaluation of 'String Col Box' , Bad Argument(1), String Col Box/*###*/("names", vals)
Usar Transform Each (si tiene jmp16+) es una manera fácil de convertirlos
Names Default To Here(1);
a = 1;
b = 2;
c = 3;
mylist = {a, b, c};
valsnum = Eval List(mylist);
valstr = Transform Each({curval}, valsnum, Char(curval));
show(valsnum, valstr);
Además, en general, si tiene variables dentro de una lista, es posible que no siempre se evalúen. Para que puedas evaluarlos con Eval List()
Names Default To Here(1);
a = "X";
b = "Y";
c = "Z";
mylist = {a, b, c};
vals = Eval List(mylist);
show(mylist, vals);Re: String Col Box: cómo pasar una lista de cadenas a un String Col Box como N cadenas individuales.¡Gracias @jthi ! El método anterior es una simplificación del código que tengo. El código real es que tengo una lista que necesito imprimir como la xyz anterior. Es idéntico al código siguiente. Intenté utilizar las funciones eval y char. Eval devuelve un error, pero char devuelve una ventana como la que proporcioné inicialmente donde todas las variables (x,y...) están en una línea. Lo que hice fue convertir la lista de búfer en una lista de cadenas y luego evaluarla usando (Eval) como el método que proporcionó @txnelson .
buffer = {x, y, x, w};
nw = New Window ( "take user input",
<<MODAL></MODAL> nb = Number Col Edit Box(
"",
[0,0,0,0],
targetint = nb << get as matrix;
)
),
bb = Button Box( "OK", targetint = nb << get as matrix ),
Button Box( "Cancel" )
); De todos modos, ahora funciona, pero ¿hay alguna manera de hacerlo sin usar eval? Sólo curioso. Gracias.
Re: String Col Box: cómo pasar una lista de cadenas a un String Col Box como N cadenas individuales.Gracias @txnelson . ¡Ahora funciona!
Sólo como referencia:
De hecho, usé Eval antes pero devolvía un mensaje de error. Me di cuenta de que era porque usé corchetes {} e inserté la función eval dentro de ellos. Usé este código:
String Col Box( "ONLY CHOOSE ONE BLOCK", { Eval (buffer) } );
Re: String Col Box: cómo pasar una lista de cadenas a un String Col Box como N cadenas individuales.Lo está convirtiendo innecesariamente en una cadena y es por eso que obtiene la lista allí.
Names Default To Here(1);
vals = {"x", "y", "z"};
vals_char = Char(vals);
Show(vals, vals_char, type(vals), type(vals_char));
La impresión de vals_char puede parecer un poco extraña en el registro ya que JMP escapa de las comillas (puede usar Write() para evitarlo si es necesario).
Puedes usar lo que sugirió @txnelson , pero Eval no debería ser necesario (en este caso)
Names Default To Here(1);
vals = {"x", "y", "z"};
nw = New Window("Example",
Outline Box("Table",
Table Box(
scb = String Col Box("names", vals),
Number Col Box("values", {11, 22, 33}),
Plot Col Box("values", {11, 22, 33})
)
)
);Re: String Col Box: cómo pasar una lista de cadenas a un String Col Box como N cadenas individuales.Utilice una función Eval() para que JMP evalúe la lista de variables deStrings y reemplazará la variable con el valor de la variable.
Names Default To Here( 1 );
listofStrings = {"x", "y", "z"};
New Window( "Example2",
Outline Box( "table2",
Table Box(
String Col Box( "names", Eval( listofStrings ) ),
Number Col Box( "values", {11, 12, 13} ),
Plot Col Box( "values", {11, 12, 13} )
)
)
);
