数値列に累積サマリーを作成する方法<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JMPでは、特定の列について累積サマリーを作成するのが便利です。ターゲット列の各値について、その列でその値の境界をいくつの行(要素)が満たしているかがわかります( より小か等しい 、以上 、未満または大なり )
たとえば、次の表から始めます。
| ペトリ皿ID | Nバクテリア |
|---|
| 0 | 100 |
| 1 | 103 |
| 2 | 98年 |
| 3 | 98年 |
| 4 | 102 |
| 5 | 97年 |
私は生成することができます以下のペトリ皿の数細菌のそれぞれの量、潜在的にこのように:
| せいぜいNバクテリア | Nペトリ皿 |
|---|
| 96 | 0 |
| 97年 | 1 |
| 98年 | 3 |
| 99年 | 3 |
| 100 | 4 |
| 101 | 4 |
| 102 | 5 |
| 103 | 6 |
| 104 | 6 |
同じように、少なくともN細菌 、 N未満の細菌 、そして N細菌以上 。
メニューツールや式の列を使用してこれを行う便利な方法はありますか、それともJSLスクリプトが必要ですか?ターゲット列で元のテーブルを事前に並べ替える必要がありますか(Nバクテリア)。これを行うアドオンはありますか?
注:MS Excelでは、これを使用して実行できます。 COUNTIF msgstr "手動で作成された"最大でN個のバクテリア "(あるいは他のどんな境界でも)カラムに隣接した関数。
ありがとう。
再:どのように数値列の累積的な要約を作るか評価(評価式(Col Sum(:Nバクテリア<= Expr(:しきい値[行()]))))
Threshold列の各値に対して、:Nバクテリア列(列全体)のどの行が不等式を満たすかを象徴する0/1フラグの列ベクトルを作成します。
しきい値列の3行目が98であるとします。それからベクトルは以下によって生成されます。
:N Bacteria <=98。:N Bacteria列の各行を98と比較し、それに応じて0または1を作成します。
Col Sum()関数は、N Bacteria <= 98によって生成されたベクトル内の0と1を合計します。合計は、行数を表します。ここで、Nバクテリア<= 98。
:Threshold [row()]ピースは、行1のThreshold [1]、行2のThreshold [2]などです。問題は、残りの式を評価する前に、データテーブルに含まれている実際の定数値を代入して、row()の値を評価する必要があることです。
そのため、我々は、Expr(:Threshold [Row()])コンストラクトを使用します。これは、Eval(EvalExpr())コンストラクトと組み合わせて使用すると、Threshold [row()]は、に含まれる値に置き換えられます。:しきい値列の "rowth"行
乾杯、
ブレイディ
再:どのように数値列の累積的な要約を作るかこの式Bradyをありがとう。 なぜNしきい値ではなくThresholdに下付き文字([])を使用する必要があるのか、そしてなぜこれらの方法で "Expr"と "Eval Expr"を使用する必要があるのかについては、私はまだ混乱しています。 不要な値のキャッシュはどのように機能しますか。また、この式はそれを回避して正しい結果を生み出します。これらの詳細について詳しく教えてください。
再:どのように数値列の累積的な要約を作るか次の公式でそれをすることができます。あなたの必要性を反映するために不平等を単に変えなさい。
評価(評価式(Col Sum(:Nバクテリア<= Expr(:しきい値[行()]))))
この例では、サマリー列は生データと同じ表に作成されます。(添付ファイル参照)
この式の[しきい値]と[件数]は、元の投稿の2番目のテーブルの列に対応しています。
Eval(Eval Expr())構文は、与えられた各行でしきい値を強制的に評価するために必要です。たとえば、以下の式を試しても、意図した結果が得られません。
Col Sum(:N細菌<=:しきい値[Row()])
乾杯、
ブレイディ