JSLの機能またはバグ?大きい文字列の部分文字列が数値を表すかどうかを知ることに依存する関数があり、Num()コマンドの結果を使用するだけです。欠落している値が返される場合は、部分文字列が数値を表していないと想定します。 。
ただし、ユーザーは、ルートとしてのバグを指摘しました。これは、Num()コマンドが、リテラル「R」が前に付いた任意の数値に完全に満足しているためです。
誰かがこれを機能またはバグとして知っていますか?スクリプトインデックスを調べてみましたが、これに対する適切なクエリを考えることができません。
ありがとう!
Print( Num( "R404" ) );
Print( Num( "R123.456" ) );
Print( Num( "r99" ) );
/*
404
123.456
.
*/
スクリプティングRe:JSLの機能またはバグ?通貨、多分。 注意すべき奇妙なケースがたくさん...
num( "$ 5")
5
num( "1jan2000")
3029529600
num( "5%")
0.05
asdate(num( "1/1"))
2001年1月1日
Re:JSLの機能またはバグ?注意すべきケースがたくさんあることはわかっていますが、具体的には標準の文字だけを気にする必要があり、ここでは「R」が唯一の例です。他のプログラミング言語では、これは十分に文書化されているか、バグと見なされます(文書に明示的に記載されていない動作はバグです)が、JMPはそのレベルの文書ではないため、おそらく隠された機能にすぎません。
Re:JSLの機能またはバグ?通貨はありそうなようですが、これが機能であるかどうかはわかりません。確かに、いくつかの異なる場所でより良いドキュメントが必要です。あなたがすでに何の数の考えを持っているならばしたほうがいいそのデータに対して独自の検証関数を作成する方がよいかもしれませんが、「1/1」のようなものが1月1日として解釈されるのを防ぐことができます。 もちろん、複数の言語を扱っている場合、これはさらに難しくなります。
num_validated = function({v}, {r=.},
if( //Make sure anything with odd characters is missing
is missing(regex(v,"^[0-9\.\,]+$")),
r = .,
//try to interpret everything else using 'num':
r = num( v );
);
r;
);
show(
num_validated("1"),
num_validated("1.0"),
num_validated("R1"),
num_validated("1,000")
);Re:JSLの機能またはバグ?JMPのドキュメントチームと開発チームにメモを送信しました。 ありがとう!
Re:JSLの機能またはバグ?みなさん、こんにちは。 JMP 17の時間枠で、この問題に対していくつかの作業が行われたようです。 具体的には、有効な数値と見なされるものを制御するのに役立つ引数がNum()とInformat()に追加されました。 JMP 17 EA7(またはそれ以降)のユーザーは、今すぐこれを試すことができます。他の人は、2022年の秋にJMP17が利用可能になるまで待つ必要があります。 これを報告してくれてありがとう! 私たちはこれらのフォーラムを監視し、可能な場合はこのような問題を修正することを目指しています。
Re:JSLの機能またはバグ?@Audrey_Shull
文字としてインポートされた列に問題がありました。
数値以外のものは目で見ることができませんでした。
しかし、それを数値にすると、ほとんどの値が消えました。 (JMP 16.2 Proを使用)
しかし、JMP 17EAを使用すると、値が消えることなく、文字から数値にすぐに変換できました。
ですから、そこにはいくらかの進歩がありました。
お役に立てば幸いです。
ベン