JSL 腳本(重命名列)反饋:有效但我不確定為什麼!嗨 JMP 社區,
經過2天的學習,我終於製作了一個執行我要找的列名更改操作的JSL腳本。 但是,考慮到獲得此結果的過程相當費力,我懷疑我可能使用了次優方法。 因此,我正在尋找清理此腳本的方法。
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());非常感謝您的反饋。
乾杯,
TS
回复:JSL 腳本(重命名列)反饋:有效但我不確定為什麼!嗨女士,
感謝您的反饋,非常感謝
最好的,
TS回复:JSL 腳本(重命名列)反饋:有效但我不確定為什麼!很好,你想學習 JSL。 真的很有用! 如果您有在 JMP 中交互式工作的經驗,那麼入門並不難。 許多 JSL 語法看起來合乎邏輯且直截了當。 然而,當然有一些古怪的東西,比如返回的列表列對話框 ()。
對於此任務,我可能會使用非模態 New Window() 作為控制面板。
以下是簡化腳本的嘗試,仍在使用列對話框. 我用評估列表()執行輸出的一些賦值表達式列對話框,這消除了對額外變量的需要。
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)
);