数式でループを使用するこんにちは、
列の式でループを使用することはできますか? たとえば、TEST という名前の列があり、for (i=1, i<5, i++, :TEST=char(i)) と書きます...しかし、何も得られません。ヒットした後、その列は空白です。適用/OK。 ループから、列内のすべての行が 4 になることを期待しています。
単純な質問で申し訳ありませんが、「JMP の使用」マニュアルの付録 A をざっと読んでも答えが見つかりませんでした。
ありがとう、
アフマド
Re: 数式でのループの使用数式の使用法に関するあなたの現在の理解は間違っていると思います。特に、式で期待される結果に混乱しています
For( i=0, i<=5, i++, :Strain )
デフォルトでは、数式は行ごとに 1 回実行されます。したがって、ほとんどの場合、For() ループは使用されません。
4 つの異なる計算式を適用したデータ表を添付しました。さまざまな公式を見て、公式がどのように機能するかについての理解を調整するのに役立つことを願っています。
Re: 数式でのループの使用ご協力/ご回答いただき、誠にありがとうございました。
「%elongation」列の最初の 5 行を入力しようとした単純な for ループに関して、列が変更されない/空白のままになる理由が気になります。 式の使用方法や引数の定義方法が完全に的外れでしょうか?
JMP と JSL を学習するごく初期の段階で、自分の間違いから学ぼうとしていました。
ご協力いただきありがとうございます。
Re: 数式でのループの使用伸び率の計算式は次のとおりです。これはあまり効率的な数式ではありませんが、データの順序に関係なく値を見つけます。
curForm = :Formulation;
curStrip = :Strip;
theRow = (Current Data Table() << get rows where(
:Formulation == curForm & :Strip == curStrip & :Stress == :Tensile Strength
))[1];
:Strain[theRow];
データが配合とストリップで並べ替えられている場合は、以下のより効率的な式を使用できます。
If( Row() == 1 | :Formulation != Lag( :Formulation ) | :Strip != Lag( :Strip ),
curForm = :Formulation;
curStrip = :Strip;
theRow = (Current Data Table() << get rows where(
:Formulation == curForm & :Strip == curStrip & :Stress == :Tensile Strength
))[1];
);
:Strain[theRow];
Re: 数式でのループの使用ご返事ありがとうございます。
私が解決しようとしている最後の問題は次のとおりです。複数の配合の複数のテスト ストリップの応力-ひずみデータがあります (添付のJMPデータファイルをご覧ください。 )。 添付の表には、4 つの異なる配合物 + ストリップ「グループ」が含まれています。つまり、FormA/ストリップ 1、FormA/ストリップ 2、FormB/ストリップ 1、FormB/ストリップ 2... 各グループについて、1) 最大応力 (引張強さ) と 2) 最大応力に関連するひずみを特定する必要があります。 最大応力を特定するために、「引張強度」列を作成し、数式エディターで単純に「Col Max()」を使用しました (下の画像を参照)。

ここで、各グループの最大応力 (引張強さ) に関連付けられたひずみ値を「%elongation」列に入力しようとしていますが、ここに問題があります。 。テーブルを調べてこれらのひずみ値を手動で特定し、「%elongation」列に値を入力するのではなく、列の式 (または JSL スクリプト) を使用してこれを実現する方法があるかどうか疑問に思っています。 。
これにはループや条件関数の組み合わせが含まれるのではないかと考えていました。
最初に、for ループを使用して「応力」列を反復処理して、特定の行で応力 = 引張強さであるかどうかを確認してみました (そうであれば、「%伸び率」列に関連するひずみ値を入力します)。 最初の列の式/試行については、添付の JPG ファイル「stress-strain data_jmp Community help_iteration trying」を参照してください。 列は変更されず、空白のままでした。
次に、「%elongation」列の最初の 5 行に、指定された行のひずみ値を単純に入力してみました (添付の JPG ファイル「stress-strain data_jmp Community help_forloop」を参照してください)。 この欄は空白のままでした。これが私の最初の投稿のきっかけでした。 関数の使用方法に重大な間違いがあると思います。
**さらに、私の最初の式は最終目標に対してあまりにも単純すぎることを認識しています。
長文となり、不明な点があった場合はお詫び申し上げます。 ご説明いただければ幸いです。 私は JMP にまったく慣れていないため、これに関するアドバイスや助けをいただければ幸いです。 よろしくお願いします。
Re: 数式でのループの使用具体的な問題は何ですか。現在使用している公式のうち、うまく機能しないものを投稿していただけますか?
Re: 数式でのループの使用こんにちは。列の数式でループを初めて使用しようとしていますが、元の問題に遭遇しているようです。
問題をどのように解決したか、また割り当てをループの外に置くべきだという意味を明確にしていただけますか?
ありがとう!
Re: 数式でのループの使用返信する必要はありません。問題が見つかりました、ありがとう! 代入はループの外にある必要があります。