Hacer referencia a una columna en JSLSiempre me sorprende la cantidad de información básica sobre JSL que falta en los tutoriales y las búsquedas en Internet. No estoy seguro de cómo se espera que uno aprenda los conceptos básicos de este idioma sin estudiar detenidamente cantidades masivas de información adicional innecesaria, y luego fallar al final para encontrar lo que se necesita de todos modos. Supongo que es por eso que los foros de discusión están disponibles como recurso.
Estoy tratando de simplemente hacer referencia a una columna dada una tabla de datos en JSL.
dt = Open("filepath.jsl");
col = dt:"Column Title/Name";cuando escribo () la columna no aparece, lo que implica que la referencia no hace referencia. La columna está claramente llena de datos, no está vacía, lo comprobé. Error estúpido de cometer, pero lo tengo cubierto. Habiendo dicho eso, no sé qué está mal. Pensé que esto era algo bastante básico en JSL, pero continuamente descubro que estas "cosas muy básicas en JSL" fallan y cuestan valiosos minutos u horas de resolución de problemas cuando podría estar trabajando en la lógica de mi código. Me inclino a presentar una queja con mi gerente sobre nuestro uso de este lenguaje y sugerir potencialmente cambiar a algo más lógico y bien diseñado para la programación (obviamente, JSL es para uso estadístico, no realmente para programación lógica), como Python.
. Gracias por su ayuda.
secuencias de comandosRe: Referenciar una columna en JSL[NB: había escrito la mayor parte de esto antes @jthi respondió y dijo más o menos lo mismo.]
Primero, si no has leído (al menos los primeros capítulos) del Guía de secuencias de comandos JMP ( PDF , si lo prefiere) realmente debería hacerlo.
JMP es un lenguaje de secuencias de comandos, no un lenguaje de programación. Está muy relacionado con la interfaz de usuario de JMP y está destinado a permitir la automatización de las tareas de JMP. Tratar de pensar en ello de la misma manera que piensa en Python u otros lenguajes que no controlan una interfaz de usuario lo llevará a la frustración.
Estoy tratando de simplemente hacer referencia a una columna dada una tabla de datos en JSL.
Tu pregunta es un ejemplo de eso. El concepto de "hacer referencia a una columna" es complicado porque una "columna" podría significar diferentes cosas en diferentes contextos (por ejemplo, una llamada de plataforma, manipular las propiedades de una columna, una fórmula de columna).
Entonces, ¿qué "col" contuvo en su ejemplo? ¿Los datos contenidos en la columna? ¿El valor de una fila particular de esa columna?
O, preguntado de otra manera? ¿Dónde quería usar "col" después de configurarlo en lo que quisiera que contuviera? ¿En una llamada de plataforma (p. ej., Distribución (Y (col))? ¿O en otro lugar?
Re: Referenciar una columna en JSLSi recuerdo correctamente, usar dt: "nombre de columna" (igual que usaría como columna ()) le dará acceso directo al valor actual de la fila actual () de la columna llamada "nombre de columna" en la tabla de datos con referencia dt. Para obtener una referencia a la columna, puede usar Column(dt, "colname") como @Thierry_S dijo.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Column Title/Name",
Character,
"Nominal",
Set Values({"a1", "b2", "c3", "d4", ""})
)
);
For each row(dt,
col = dt:"Column Title/Name";
Show(col);
);
Row() = 1;
col = AsColumn(dt, "Column Title/Name");
Show(col);
col = Column(dt, "Column Title/Name");
Show(col);Definitivamente no estoy diciendo que la documentación de JSL sea la mejor, pero tiene bastante material (y una gran comunidad y soporte con correo electrónico). Para empezar, estas son buenas fuentes:
JMP15 - Guía de secuencias de comandos
Ayuda JMP
Índice de secuencias de comandos directamente desde JMP
Si falta algo o no está claro en la Ayuda de JMP o en el Índice de secuencias de comandos, estoy bastante seguro de que JMP estará encantado de mejorarlo.
@Jeff_Perkinson
Re: Referenciar una columna en JSLLa sintaxis correcta es: col = Columna (dt, "Nombre")