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スクリプト(列の名前を変更)フィードバック:それは動作しますが、私は理由がわからない!こんにちはMSさん、
ご意見ありがとうございます、それは非常に高く評価されています
ベスト、
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)
);