数式を使用して選択した行の平均を計算するにはどうすればよいですかやあみんな、
前置きすると、私は基本的に JMP の初心者なので、スクリプトの作成方法がわかりません。基本的な公式などです。これが私がしなければならないことですが、その方法がわかりません。
まず、同じ「サンプル番号」ごとに「シアンジンの量」の平均を計算したいと思います (目標は、「3 回の注入の平均」列に配置した値を計算する列を作成することです)。
同様に、「発達段階」ごとにこれら 3 つの平均の平均を示す列が必要で、「発達段階の平均」というラベルの付いた列に目標を置きました。
移動平均線ではないんですが… 数式の条件文が機能するのではないかと思いました。 それとも、「ID コード」列などの 3 番目の列を識別子として使用して、どの行を平均するかを指示する数式でしょうか?
ありがとう!
基本的なデータ分析とモデリングウィンドウズRe: 数式を使用して選択した行の平均を計算するにはどうすればよいですか?必要な2つの式は次のとおりです
If( :Sample Number != :Sample Number[Row() + 1] | Row() == N Rows( Current Data Table() ),
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
)
そして
If( :Developmental Stage != :Developmental Stage[Row() + 1] | Row() == N Rows( Current Data Table() ),
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Developmental Stage )
)

Re: 数式を使用して選択した行の平均を計算するにはどうすればよいですか?こんにちは!
返信してくれてありがとう!試してみたらうまくいきました。ただ仕組みがよく分かりません…。
ここまでは理解できたと思う
サンプル番号が次の行のサンプル番号と等しくない場合
または
現在の行番号は現在のデータテーブルの合計行数と同じですか? (この部分は私も混乱しています。さらに、これを入力すると、「現在のデータ テーブル」部分の使用に関する警告が表示されます。
それから
サンプル数が同じ場合の「シアニジン量(ng/kg)」の平均を計算しますか?
この初心者に公式の仕組みを少し説明してもらえますか?
フォローアップの質問 - 私の完全なデータテーブルの場合、私の例で示したように、品種名は異なるがサンプル番号と注入番号は同じである行を含む明らかに多くのデータがあります。これらの公式は今後も機能するでしょうか?それらを区別するには品種名を考慮する必要がありますか?
ありがとう
Re: 数式を使用して選択した行の平均を計算するにはどうすればよいですか?計算式は実際には非常に簡単です。結果を特定の行にのみ表示するのは仕様であり、計算が少し面倒になります。
数式が特定の列に適用されると、JMP は単純にその数式を取得し、それを行 1、次に行 2、というようにテーブルの最後の行に適用します。したがって、以下の式で必要な答えが得られます
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
基本的に、数式は「シアニジンの量 (ng/kg)」列の平均を計算し、それを列の行に書き込みます。By 列「Sample Number」も指定されているため、「Sample Number」で見つかった各レベルの平均が計算され、それが新しい列の行に書き込まれます。

ただし、要件は、各「サンプル番号」の最後の行に平均値のみを表示することでした。それらがどの行であるかを特定するには、プログラムで評価できるものが必要です。この場合、処理中の現在の行の後の行で「サンプル番号」の値が変化するかどうかを確認することにしました。したがって、式は次のように変わります
If( :Sample Number != :Sample Number[Row() + 1] ,
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
)
If() 句は次のように解釈されます。「サンプル番号」の現在の値が、現在の行から 1 行後の行 ( Row() + 1 ) の「サンプル番号」の値と等しくない場合、計算を実行します。 。この比較が真でない場合、何も行われません。
したがって、これはデータテーブルの最後の行を除いてうまく機能します。JMP がデータテーブルの最後の行から 1 行後の行を調べようとしても、比較する行がないため、決定を下すことができません。

したがって、式ではこの問題も考慮する必要があります。
If( :Sample Number != :Sample Number[Row() + 1] | Row() == N Rows( Current Data Table() ),
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
)
ここで、追加の句は、現在の行 ,Row() がデータ テーブルの行数 N Rows( Current data Table() と等しいかどうかを確認します。2 番目の句は「|」で区切られます。これは、最初の句の「OR」または 2 番目の句のいずれかが true の場合に計算を処理することを示します。
2 番目の数式列は同じロジックに従いますが、By 列が「開発段階」に変更されているだけです。
これを完全なデータテーブルで使用できるようにするには何を変更する必要があるかについて。何を指してこう言っているのか分かりませんが、品種」。数式が適切に機能するための要件は、データが「発達段階」と「サンプル番号」の順にソートされていること、および「シアニジンの量 (ng/kg)」が平均値が含まれる列の名前であることです。に基づいて計算されます。これらの列の名前が変更された場合は、式内で新しい名前を置き換える必要があります。
Re: 数式を使用して選択した行の平均を計算するにはどうすればよいですか?他のオプションは、If を Col Min および Col Max 関数とともに使用することですが、これを使用する場合は注意してください。これは、Col Max/Col Min で Row() を使用するため、将来の JMP バージョンで機能しなくなる可能性があります ( Set Each Value で式を使用し、Col 統計式で最初の引数として式を使用する動作がサポートされるようにします。 )
ColAvg1
If(Row() == Col Max(Row(), :Sample Number),
Col Mean(:"Amount of Cyanidin (ng/kg)"n, :Sample Number)
)
ColAvg2
If(Row() == Col Max(Row(), :Developmental Stage),
Col Mean(:CoAvg1, :Developmental Stage)
)

Re: 数式を使用して選択した行の平均を計算するにはどうすればよいですか?どうもありがとうございます。皆さんの解説のおかげで理解できた気がします!
Re: 選択した行の平均を計算するために数式を使用する方法古いスレッドだとは承知していますが、私も同じことを探していて、以前作ったスクリプトを見つけました。とても簡単にできます。元々どこから入手したのかは覚えていませんが、うまく動作して嬉しいです。以下の例は、行の範囲を指定するものです。
row_range_lower = rownum1;
row_range_upper = rownum2;
dtx<
rowrangefull=dtx< freq_avg = Col mean(If( Selected(),列名), . );