式の中で可変名に含まれる逆カンマを削除する方法こんにちは、
2つの列を選択して式を実行したいです。しかし、式中の変数は名前の周りに ""ありますので、うまくいきません。助言がありますか?
dt = Current Data Table();
win = New Window( "Clean False Zeroes",
<<MODAL></MODAL>
再:式の中の可変名の中の逆コンマを削除する方法こんにちは!私はnameexprを使用すればそれは動作します。助けてくれてありがとう。私はとても幸せです。再:式の中の可変名の中の逆コンマを削除する方法両方のあなたの提案をありがとう、しかし、それらのどれも私のために働きません。わかりやすくするために、A列のデータ、B列のステータスを含むテストファイルを作成しました。次に、式を含めて3列目を作成しました。あなたはそれが機能することがわかります。スクリプトを実行して同じことを実行した場合(どの列をゼロにしたいかわからない場合)、4列目にはうまく機能しないことがわかります。それがすべて理にかなっていることを願っています。
dt = Current Data Table();
win = New Window( "Clean False Zeroes",
<<MODAL></MODAL>
再:式の中の可変名の中の逆コンマを削除する方法私はあなたがこのようなことをしたいと思うと思います:
dt << new column("check",
formula(eval(evalexpr(If(Is Missing(expr(nameexpr(yvar))),.,expr(nameexpr(xvar))) )))
);
The selected names are in the script選択した名前はスクリプト内にあります
余分な作業がなければ、あなたはこのようなものを手に入れます
The variable names are in the script変数名はスクリプト内にあります
これは、yvarが:nameを保持し、xvarが:heightを保持している間のみ機能します。テーブルを保存し、JMPを閉じて再起動してからテーブルを開く場合は、そうではありません。
それは何をするためのものか?
評価する ()は、式その議論を評価する。通常、あなたはそれを望んでいないでしょう。式 ()は、列がそれを実行する必要があるまで評価されるべきではありません。実行される最初のコードは、 evalexpr ()式列の書き換えられた式を返します。 Evalexpr その引数で探します expr ()関数が評価して結果で置き換えることができる関数。2つあります。だから評価されるのは NameExpr その引数の名前を返す関数... xvalの引数と名前は:heightです。
再:式の中の可変名の中の逆コンマを削除する方法また、Craigeの入力に基づいています(ありがとう!)私は列ダイアログエディタを使用してスクリプトを配置しました
dt = Current Data Table();
cd=column Dialog(
Title(" Clean False Zeroes "),
xcols= ColList(" Numeric ", MinCol( 1 ), DataType("Numeric"), modeling type("Continuous") ),
ycols= ColList(" Character ", MinCol( 1 ), DataType("Character"), modeling type("Nominal") ),
);
xvar =cd["xcols"];
yvar =cd["ycols"];
xvar=xvar[1];
yvar=yvar[1];
dt << new column("check",, formula(If(Is Missing(yvar),.,xvar) ) );
再:式の中の可変名の中の逆コンマを削除する方法より良い答えを得るためには、スクリプトを作成しているJSLをもっと見る必要がありますが、
{"LOA (QC1007AI),%"}
1つの引用符付き文字列のリストです。(中括弧はリストを作成します。)リストから項目を取り出して、もう少し近づくことができます。
colNames = {"LOA (QC1007AI),%"};
theColumnName = colnames[1];
print(theColumnName);
ほとんどの場合は、列名から列を作成する必要があります。
col = column( dt, theColumnName );
列関数はデータテーブルで名前を調べて列を返します。
列を返す関数ではなく、列の名前を返す関数を使った方がいいと思います。良い記事があります http://www.pega-analytics.co.uk/blog/column-references/ これらの問題のいくつかを議論する。
再:式の中の可変名の中の逆コンマを削除する方法こんにちはgianpaolo_polsi、
スクリプトのおかげで、私は私が他の目的のために使用できると思います、しかし、それは私の問題を解決しません:If(Is Missing({"Status(LOA)"})、
、
{"LOA(QC1007AI)、%"}
)
スクリプトを作成するときに、なぜ私の式にこれらのマークが表示されるのか理解できません。再:式の中の可変名の中の逆コンマを削除する方法コロンは演算子であるため、アンダースコアはコロンよりも適しています。
再:式の中の可変名の中の逆コンマを削除する方法こんにちはソップ
式を適用する前に、このコードをデータテーブルに試してください。
// code to replace any special JMP character with single char " : "
For(i = 1, i <= N Col(dt), i++,
Column(dt, i) << set name(Regex(Column(dt, i) << get name, "\W", ":", GLOBALREPLACE))
);