値を見つけて分類するこんにちは、
データを分類する必要があるという問題があります。自動化されたプロセスがあれば、分類する値の選択ははるかに簡単になります。問題はそのようなものです。3つの列を持つテーブル(1つのカテゴリ、2つの深さ測定、3つのデータポイント)。
1)それぞれの湖について、それぞれ0.5以下のファイル(サンプルファイルの列2を参照)を取得したいと思います。つまり、0、5は選択のための評価に含まれるべきではありません。
2)さらに、列1の名前ごとに、最もデータを含む3つの最も深い値を見つけることによって、最もデータポイントが多い値(N、列3)の後に列2にある値をソートします。
3)それらを分類するために、私は新しい列を作成し、これら3つのデータが最も少ないものにデータが最も多いものに対して1/2/3を追加したいと思います。2つの深度がデータポイント数で等しいことがわかった場合は、より深い方を1または2に分類する必要があります。
理解を深めるためにサンプルファイルを見てください:-)。
それがjslで可能であるならば、どんな解決策でも前もってありがとう。
再:値を見つけて分類するこんにちは @パッコ 、
偶然にJMP 12(またはそれ以前)を使っていますか?Col Rank()は、Xanが使用している追加の引数を許可するようにJMP 13で変更されました。
ドキュメントから:
JMP 12:
Col Rank(column)
JMP 13:
Col Rank(column, <BYVAR>, <<TIE></TIE></BYVAR>
再:値を見つけて分類するスクリプトを実行して、選択した行のサブセットを次のように作成します。
dt << Subset( Copy formula( 0 ), Selected Rows( 1 ), Selected columns only( 0 ) )
私は
すべての列は実際にランク付けされていますが、StationsnamnおよびisBelow05の固有値内にあります。これは、Col Rank()の2番目と3番目の引数によって制御されています。ステーションをまとめてランク付けしたい場合は、Col Rank()引数から変数でそれを削除します。
再:値を見つけて分類する結果はどのように見えるのでしょうか。鉱山は列全体をランク付けします。しかし、私は各セクションをランク付けすることを探しています(同じ名前の各バッチ、列Stationsnamnを見てください)。
再:値を見つけて分類するアイデアをありがとう、「評価の抑制」の選択と選択解除が助けになりました。しかし、待機時間5は何も変わりませんでした。

再:値を見つけて分類する何があなたの問題を引き起こしているのかわかりません。 前回の回答で指定したデータテーブルを開くと、あなたが発行したものが見えます。 ランクの列見出しを右クリックして[列情報]を選択することで、問題を修正できました。 列情報ウィンドウが表示されます。 下図のように "Suppress Eval"を選択してから "Apply"ボタンをクリックしてください。 [Suppress Eval]の選択を解除してから[Apply]ボタンをもう一度クリックし、列の値が修正されたかどうかを確認します。

もう1つ試してみたいことは、「isbelow05」列と「rank」列を削除して、次のスクリプトを実行することです。
dt = Current Data Table();
dt << New Column( "isbelow05", formula( :Profildjup <= 0.5 ) );
wait(.5);
dt << New Column( "rank", formula( Col Rank( -(:n rows + :Profildjup), :isbelow05, :Stationsnamn ) ) );
dt << select where( :isbelow05 & :rank <= 3 );
うまくいった場合、問題となる可能性があるのは、"rank"列が生成される前に "isbelow05"式が完成していないために問題が発生していることです。 の
wait(.5);
列 "isbelow05"の作成を完了するための時間を与えています
再:値を見つけて分類するうーん、それは奇妙だ。ここからサンプルファイルをもう一度ダウンロードしたところです(違いは1列追加して選択したことです)が、アップロードしたサンプルファイルでも以前に投稿したのと同じエラーが表示されます。しかし、今度は、表面の値に0.5以下の列の値を付けました。(添付ファイル参照)
私もその質問を単純化することができました。それから値はちょうど各湖の名前セクションのための最も高い番号のそれらのランクに従って選択され、分類される必要があります。
再:値を見つけて分類するXanに含まれているスクリプトは、添付したサンプルデータに最適です。 実際のデータと添付したExampleデータテーブルの違いは何ですか?
再:値を見つけて分類するこんにちはグレッグ、
返信とスクリプトをありがとう。残念ながら、それは私のデータでは動作しません。結果は、最初の列にデータがなく、列2の最初のセルに1つのエントリしかない2つの新しい列です( "4,20533670002011e-315")。
何が間違っていた可能性があるという考えはありますか?
再:値を見つけて分類する私が正しく理解していれば、このようなことが助けになるはずです。
dt = Current Data Table();
dt << New Column( "isbelow05", formula( :Profildjup <= 0.5 ) );
dt << New Column( "rank", formula( Col Rank( -(:n rows + :Profildjup), :isbelow05, :Stationsnamn ) ) );
dt << select where( :isbelow05 & :rank <= 3 );
深さが「下」よりも数値的に大きい場合、「<= 0.5」を「> = 0.5」に変更します。サンプルファイルを含めてくれてありがとう。