Hacer referencia a una columna en JSLContinuamente 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 lenguaje sin examinar cantidades masivas de información innecesaria y luego, al final, no pueda 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 intentando 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 nada, lo que implica que la referencia no hace referencia. La columna está claramente llena de datos, no está vacía, lo verifiqué. Es un error estúpido, pero lo tengo cubierto. Dicho esto, no sé qué pasa. Pensé que esto era algo bastante básico en JSL, pero continuamente encuentro que estas "cosas muy básicas en JSL" fracasan 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 a mi gerente sobre nuestro uso de este lenguaje y sugerir potencialmente cambiar a algo más lógico y mejor diseñado para programación (obviamente, JSL es para uso estadístico, no realmente para lógica de programación), como Python.
. Gracias por cualquier ayuda.
Automatización y secuencias de comandosAcceso a los datosCombinación y limpieza de datosDiseño de experimentosLa personalización en masaRe: Hacer referencia a 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 prefieres) realmente deberías hacerlo.
JMP es un lenguaje de scripting, no un lenguaje de programación. Está muy vinculado a la interfaz de usuario de JMP y está destinado a permitir la automatización de las tareas de JMP. Intentar pensar en ello de la misma manera que piensa en Python u otros lenguajes que no controlan una interfaz de usuario generará frustración.
Estoy intentando simplemente hacer referencia a una columna dada una tabla de datos en JSL.
Tu pregunta es un ejemplo de ello. 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 a una plataforma, manipulación de las propiedades de una columna, una fórmula de columna).
Entonces, ¿qué "col" debía contener 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ías usar "col" después de configurarlo en lo que querías que contuviera? ¿En una llamada de plataforma (por ejemplo, Distribución (Y (col))? ¿O en otra parte?
Re: Hacer referencia a una columna en JSLSi no recuerdo mal, usar dt:"colname" (igual que usaría As Column()) le dará acceso directo al valor actual de la Fila() actual de la columna denominada "colname" en la tabla de datos con referencia dt. Para obtener una referencia a la columna, puede usar Column(dt, "colname") como @Thierry_S dicho.
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 JSL sea la mejor, pero tiene bastante material (y una gran comunidad y soporte por 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 mejorarlos.
@Jeff_Perkinson
Re: Hacer referencia a una columna en JSLLa sintaxis correcta es: col = Columna (dt, "Nombre")