Feedback JSL (rinominare colonne): funziona ma non sono sicuro del perché!Ciao community JMP,
Dopo 2 giorni di apprendimento, ho finalmente prodotto uno script JSL che esegue l'operazione di modifica del nome della colonna che stavo cercando. Tuttavia, considerando il processo piuttosto laborioso per arrivare a questo risultato, ho il sospetto che potrei aver usato approcci non ottimali. Pertanto, sto cercando modi per ripulire questo 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());Il tuo feedback sarebbe molto apprezzato.
Saluti,
TS
Ri: feedback JSL (rinominare colonne): funziona ma non sono sicuro del perché!Ciao MS,
Grazie per il tuo feedback, è molto apprezzato
Migliore,
TSRi: feedback JSL (rinominare colonne): funziona ma non sono sicuro del perché!E 'fantastico che tu voglia imparare JSL. È davvero utile! E non è così difficile iniziare se hai esperienza di lavorare in JMP in modo interattivo. Gran parte della sintassi JSL sembra quindi logica e diretta. Tuttavia, ci sono ovviamente alcune cose strane come la lista restituita da Colonna Dialog ().
Probabilmente avrei usato una Nuova Finestra () non modale come pannello di controllo per questa attività.
Di seguito è riportato un tentativo di semplificare lo script, ancora in uso Finestra di dialogo delle colonne . Io uso Eval List () per eseguire alcune delle espressioni di assegnazione dell'output di Finestra di dialogo delle colonne, che elimina la necessità di variabili 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)
);