行内の反復値の番号順を分析する方法こんにちは、
私はスウェーデンでJMPを使用している数少ない人の一人ですが、ほとんどの学部ではSPSSを使用しています。しかし、私はJMPが大好きで、それを使った手術に関する70の記事を発表しています。私は准教授で、私は自分自身をいくらかプログラムすることができる高度なJMPアマチュアとして説明しますが、私が問題を抱えている問題が1つあります。私は以前にこの質問を投稿しましたが、フォーラムの回答を正確には理解していませんでした。問題は次のとおりです。
というファイルがあります結果 。
このファイルには、 5700の番号それは以下のような順序でソートされています。
Nr
3456
3666
3687
3687
3687
5444
5444
5445
スクリプトの書き方や、余分な列に何を書いて数字を繰り返して表示するかについての情報をいただければ幸いです。その理由は、私は最初のnrだけに興味があるからです。そして私が注文を得ることができれば私は注文1だけからなる別のファイルを作ることができます。
好き
番号順
3456 1
3666 1
3687 1
3687 2
3687 3
5444 1
5444 2
5445 1
私はアマチュアなので、簡単な方法で答えを書くことができれば幸いです。
敬具
ラース・エノクソン
准教授
ウメオ大学
スウェーデン
再:どのように行の繰り返し値の数値順を分析するのですか?ありがとう。優れた助け。これで問題は解決しました。再:どのように行の繰り返し値の数値順を分析するのですか?甘い!by変数を持つColRank()はJMP 13まで利用できませんでした。
FYIとして、これはパフォーマンスをチェックするためのスクリプトです。 100万行以上ある場合は、おそらくラグをソートして使用します。
Names Default to Here(1);
dt = New Table("Test It", add rows(6000),
New Column("Nr", numeric, continuous,<<SET each="" value=""></SET><BR /> 6000行の場合、Col Rank()= 3.13 *を使用して遅れを使用
t1 − t0 = 18836。
t3 − t2 = 1863。
t5 − t4 = 4161。
100万行の場合、Col Rank()= 2.45 *を使用して遅れを使用
t1 − t0 = 1521679。
t3 − t2 = 694813。
t5 − t4 = 621142。
* /
再:どのように行の繰り返し値の数値順を分析するのですか?で列の式を試してください。コルランク() 変数による関数JMP 13以降が必要になる可能性がありますが、ColRankでの変数によるサポートが最初に導入された時期が不明です。
以下のスクリプトを試してください。前の解決策と同じ結果になるはずです。ただし、並べ替えには依存しません。
Current Data Table() << New Column("Order", Formula(Col Rank(:Nr, :Nr)));
(まだスウェーデンにいる別のJMPユーザー)
再:どのように行の繰り返し値の数値順を分析するのですか?列Nrはソート順になっているため、列式を使用してこれを実行できます。数式を表示する前に、[メインメニュー]> [ヘルプ]> [スクリプトインデックス]> [関数]> [行]を調べるか、または[Lag]を検索してください。 Countという列を作成し、この式を追加しました。 デフォルトでは、最初の行のカウントは1です。 2番目の条件:Nr == Lag(:Nr、1)は、現在の行が前の行と等しい場合、前のカウントLag(:Count、1)を取り、それを増分するという条件です。 それ以外の場合、カウントは1です。
If(
Row() == 1, 1,
:Nr == Lag( :Nr, 1 ), Lag( :Count, 1 ) + 1,
1
)
JMP Lagは数字だけでなくテキストにも作用します。 ただし、テキストの列がある場合は、関数を次のように変更することをお勧めします。
If(
Row() == 1, 1,
Trim( Lowercase( :txtCol ) ) == Trim( Lowercase (Lag( :txtCol, 1 ) ) ) , Lag( :Count, 1 ) + 1,
1
)
それが役立つことを願っています。