再:データテーブルツール、パート3:柔軟なランキングを得るためにグループ内の行に番号を付けるこんにちは、JMP 12でこれを行うことは可能ですか?ありがとうございました
再:データテーブルツール、パート3:柔軟なランキングを得るためにグループ内の行に番号を付けるこんにちは、
Col Cumulative Sum関数はJMP 13でデビューしました。それがなければ、あなたはこのようなことを試みるかもしれませんが、現在のdata table()はこの式を持つテーブルが現在のものではないとき問題を与えるでしょう。複数の列を使用してグループ化する場合は、複数の列を連結し、その新しい列を基にして式を作成する必要があります。
乾杯、
ブレイディ
Names Default To Here( 1 );
dt = open("$Sample_Data\Car Physical Data.jmp");
dt << New Column( "Rnk",
formula(
dtCur = Current Data Table();
ct = :country[Row()];
Contains( dtCur << get rows where( :country == ct ), Row() );
)
);
再:データテーブルツール、パート3:柔軟なランキングを得るためにグループ内の行に番号を付けるお疲れ様でした!私はすぐにこのスクリプトを実行してSQLプルをポストしているので、現在のdata table()はうまく働きます。
そしてはい、私はグループ化するために1列以上(合計4列)を持っているので、4列を連結した新しい列を作成することは完全にうまくいきました。 唯一のことは私が5000-6000行のデータを持つデータテーブルから作業していて、ランク付けされているアイテムが約780あるのでRnk列を生成するのに1分かそこらかかるのです。
ありがとうございました!
再:データテーブルツール、パート3:柔軟なランキングを得るためにグループ内の行に番号を付けるJMP13より前のこの記事では、ローリング・サムの方法について説明しました。 この記事では、グループでそれを行うことについては説明しませんが、その概念をそれに拡張することはそれほど難しくありません。
https://community.jmp.com/t5/Discussions/how-to-get-cumulative-sum-data/td-p/6766
再:データテーブルツール、パート3:柔軟なランキングを得るためにグループ内の行に番号を付ける具体的には、jaredgj、式を試してください。
k = row();
合計(i = 1、k、If(:Country [i] ==:Country [k]、1、0));
総和関数について忘れてしまいました。他の式のように行を取得するのは時間がかかるため、他の関数よりもはるかに高速です。
乾杯、
ブレイディ
再:データテーブルツール、パート3:柔軟なランキングを得るためにグループ内の行に番号を付けるbrady_bradyさん、ありがとうございました。 スクリプトを完成させるのにまだ少し時間がかかりましたが、あなたが投稿したオリジナルのものより少し早かったです。 ありがとうございました
そして追加リンク/ポストをbfoulkesに感謝します
データテーブルツール、パート3:柔軟なランキングを得るためのグループ内の行の番号付け次のいずれかのようなタスクを実行しなければならなかったところにデータセットがありましたか。
不規則な間隔で記録された、複数のツールによる複数の測定値を含む背の高いテーブルから、各ツール/オペレータの組み合わせについて、最新のk番目の測定値のみを含むサブセットテーブルを作成します。特定のメトリックについて、各グループ内で上位(または下位)のk個のオカレンスを見つけます。例としては、各地域の3つの製品のうち、最も収益が高い、または最も低い利益率を生み出しているものがリストされています。もしそうなら、あなたは一人ではありません。私たちはこのような問題にどう対処するかについてのアドバイスをかなり定期的に求めています。これらの各タスクでは順位付けが必要なので、JMPユーザーがJSLのrank()関数を参照するのは当然です。これは確かにオプションです。問題は、rank()関数ではテーブルの行をランク付けする列を明示的に指定する必要があることです。データを探索するときは、複数の新しい列を作成したり編集したりせずにさまざまなランク付けを試すことがよくあります。列式です。
JMP 13のCol Cumulative Sum()関数を独創的に使用することで、柔軟かつ動的に行をランク付けすることができます。異なるランキングを作成するには、異なる変数でソートするだけです。
例として、Car Physical Data.jmpを考えてみましょう。このファイルには、自動車に関する名目上の連続データが含まれています。JMPサンプルデータフォルダにインストールされています。このフォルダには、[ヘルプ]> [サンプルデータライブラリ]を選択してアクセスできます。
以下に、特定の行内またはその前に出現する、国別にまとめられた自動車の累積数を計算するための列(強調表示)を追加しました。表の行を下に進むと、Country = Japanの車とCountry = USAの車、Country = Otherの車の順に番号が付けられています。
「各国で最も軽い車は5台ですか」という質問に答えるには、次の手順を実行するだけで済みます。このアプローチは強力です。
元のテーブルを維持したまま、テーブルをWeightで昇順に並べ替えます。ランキング列が5以下のセルを選択します。必要に応じてこれらの行をサブセットしてください。各国から最も強力な自動車を3台見つける必要があると判断した場合は、単純に馬力で降順に並べ替え、ランクが3以下のセルを選択するため、このアプローチも柔軟です。
ランキング列の式は単純ですが(下)、書き留めておく必要はありません。データテーブルツールアドインを使用すると、スクリプタ以外のユーザーでも、任意の組み合わせで、このような列を簡単に追加できます。列のグループ化
アドインを実行したら、必要なテーブル列とグループ化列を選択して[列の作成]ボタンをクリックするだけです。それでおしまい!
のデータテーブルツールアドインから無料でダウンロードすることができます JMPファイル交換 - 無料のSASプロファイルが必要です。
注:このブログは、データテーブルツールアドインのさまざまな機能を探るシリーズの第3回です。
データテーブルツールアドインを使用すると、テーブルの並べ替え順のみに基づいて柔軟なクエリを実行するための列を作成できます。コーディングは不要です。