"n items()"はもっと堅牢なはずですか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私はよく "n items()"のスクリプトで問題にぶつかっています。 そして、私はしばしばこのエラーを見ます: "N Items()引数はリストでなければなりません"
1つのスクリプトでは、データの堅牢性のために、nitemに入力するものは、行列、数値、または文字になることがあります。別名:変数= [5]、変数= 5。variable = "05";変数= {5};あまり詳しく説明しないでください。この場合、"n items"に文字値、別名n items( "05")を入力すると、1を吐き出すことができます。涙を吐き出す、電気ショック療法。
良い点は、不適切なデータ項目がJSLに渡されてもJSLが決して問題にならないことです。これは、データがソフトに変換されるためです。 これにより、スクリプトをさまざまなデータに対して堅牢にするために必要なコード量が大幅に削減されます。 欠点は、それが遅延プログラミングを導き、間違いを見つけるのを難しくする可能性があることです。 これは問題につながる可能性があります。たとえば、行列を入力してncolsが必要で、nrowが必要ではありません。またはあなたの文字列は "05、05"で、最初に解析したほうがよいでしょう。
コミュニティはどう思いますか?「n個のアイテム」がもっと堅牢であるならば、それは祝福または呪いでしょうか?
再: "n items()"はもっと堅牢なはずですか?マトリックスについてのあなたの考えが好きです。 nrows(matrix)* ncols(matrix)は、単にnrowsやncolsを返すよりも便利であるように思えます。
"a、b、c"に3を返すのは、値をいくつか挙げるとスペース、アンダースコア、コロン( "" "" ")"、"(" "" "" ")で区切ることができます。 nitemsに送る前に、これは実際にプログラマに任されて単語()またはregex()で解析されるべきです。
私は最初は1が文字列のリストを期待していたので最も適していると思いました、しかし前のステートメントがリストを返さなかった場合それはただ文字列として変数を返しました。 しかし、今言及したように、文字列の長さを返し、さまざまなアプリケーションがある場合、nitemは非常に便利です。
再: "n items()"はもっと堅牢なはずですか?nItems(matrix)がnrows(matrix)* ncols(matrix)を返す場合、nItems(matrix)がより便利になる可能性があります。
私は1、3、または5の場合を主張することができたので私は私が私が私が何を期待しているのかわからない( "a、b、c")。
再: "n items()"はもっと堅牢なはずですか?私はJMPのサポートがこれらのフォーラムに従う傾向があり、急いでいないことに加えて、私はこの問題に直面しているので、この変更を要求するのに最適な候補になるとは思わない。
私はJavaScriptでそれらがソフトな平等を許すことをちょうど知っている。例えば、5 == "5"はtrueを返し、5 === "5"で表される難しい品質はfalseになります。 ソフトな等式はしばしば奇妙な振る舞いをすることがあり、そして多くのプログラマーによって眉をひそめられます。 多くの人が常にハードイコールを使うことに偏見を持っていますが、ソフトイコールを持つことはコードをロバストにするのに本当に役立ち、プログラマーが自分がしていることを知っていれば彼らは命を救うことができます。
JSLは別の言語ですが、ほとんどのスクリプト作成者はプログラミングの背景を持っていないようです。 そのため、堅牢なアイテムを許可することは言語に有害になる可能性がありますが、同時に、私はそれをうまく利用することができるでしょう。
再: "n items()"はもっと堅牢なはずですか?あなたの提案は良い提案だと思います。 そして、コミュニティ全体がその提案をJMPのサポートグループに送るべきだと考えているかどうかにかかわらず。 彼らだけが変更に影響を与えることができます。
そして、私はあなたの議論をあまりにも早く読み、あなたのコミュニティからの意見を求めなかったことをお詫び申し上げます。
再: "n items()"はもっと堅牢なはずですか?それは質問に答えません。
再: "n items()"はもっと堅牢なはずですか?"Is List"関数の場合、値がリストかどうかを確認できます。したがって、次のことはスケーラ、リスト、行列に有効です。
x =スケーラ、行列またはリスト
(list(x)である場合
カウント= 1
)
Re:「nitems()」はもっと堅牢にすべきですか?このスレッドはかなり古いですが、JMP13以降で最終的に実装されたものを述べると思いました。
- NItems(matrix)は、エラーではなく、行列内の要素の数(rows * cols)を返すようになりました。
- nitems( "cat")はまだエラーを返します
- nitems([1 2 3] | / [4 5 6])== 6