Comentarios sobre el script JSL (renombrar columnas): funciona, pero no estoy seguro de por qué.Hola comunidad JMP,
Después de 2 días de aprendizaje, finalmente produje un script JSL que realiza la operación de cambio de nombre de columna que estaba buscando. Sin embargo, considerando el proceso bastante laborioso para llegar a este resultado, sospecho que podría haber utilizado enfoques subóptimos. Por lo tanto, estoy buscando maneras de limpiar este script.
Names Default To Here( 1 );
dt = Current Data Table();
src=.;
trg = .;
sfx = "";
pfx = "";
n = 0;
m = 0;
win = New Window (
" WARNING ",
<< Modal,
Text Box (" It is recommended that you save your table before proceeding "),
Button Box (
"SAVE NOW",
dt << Save("");
),
);
cd = Column Dialog(
cl1 = ColList( "SOURCES", Min Col (1)),
cl2 = ColList( "TARGETS", Min Col (1)),
Line Up( 2,
Text Box( "Prefix" ), ex = EditText( "P_" ),
Text Box( "Suffix" ), ey = EditText( "_S" )
),
);
src=cd[1];
srcx = right (src,length (src)); // I'm not sure how this works but without this the script fails
n = N items (srcx);
trg = cd[2];
trgx = right (trg,length (trg)); // I'm not sure how this works but without this the script fails
m = N items (trgx);
pfx = cd [4];
sfx = cd [6];
If (n == m,
st = "";
For (i=1, i <= m, i++,
scol = srcx [i] << Get Name;
st = pfx || scol || sfx;
trgx [i] << Set Name (st);
);
,Stop());Sus comentarios serán muy apreciados.
Aclamaciones,
TS
Re: JSL script (renombrar columnas) comentarios: funciona pero no estoy seguro de por qué!Hola ms
Gracias por sus comentarios, es muy apreciado
Mejor,
TSRe: JSL script (renombrar columnas) comentarios: funciona pero no estoy seguro de por qué!Genial que quieras aprender JSL. ¡Es realmente útil! Y no es tan difícil comenzar si tiene experiencia de trabajar en JMP de forma interactiva. Gran parte de la sintaxis de JSL parece lógica y directa. Sin embargo, hay algunas cosas extravagantes como la lista devuelta por Diálogo de columnas ().
Probablemente usaría una nueva ventana no modal () como panel de control para esta tarea.
A continuación se muestra un intento de simplificar su script, aún utilizando Diálogo de columna . yo suelo Lista de evaluación () para ejecutar algunas de las expresiones de asignación de la salida de Diálogo de columna, Lo que elimina la necesidad de variables extra.
Names Default To Here(1);
dt = Current Data Table();
cd = Column Dialog(
src=ColList("SOURCES", Min Col(1)),
trg = ColList("TARGETS", Min Col(1)),
Line Up(2,
Text Box("Prefix"), pfx = EditText("P_"),
Text Box("Suffix"), sfx = EditText("_S")
)
);
Eval List(cd[[1 2 4 6]]); //Execute relevant assignments within list cd
Show(src, trg, pfx, sfx); // Just to confirm (can be deleted)
n = N Items(src);
m = N Items(trg);
For(i = 1, i <= Min(n, m), i++,
trg[i] << Set Name(pfx || (src[i] << get name) || sfx)
);