文字列のレベルごとの増分(スクリプト)たぶん私は再び木の前に木を見ていません。文字列の個別のレベルごとに数値の増分を適用したいだけです。
同じレベルは同じ増分を取得し、異なるレベルは異なる番号を取得します。
仮定:データは「Character_Column_Have」でソートされます。「Numeric_Increment_Want」は1で始まる必要があります。
Character_Column_Have Numeric_Increment_Want
AAA 1
AAA 1
ABC 2
BBB 3
CCD 4
EEE 5
EEE 5 ...
これまでに達成した唯一の結果は、"col ** bleep ** rank"を使用してJMPを繰り返しクラッシュさせることでした。
JMPと私はもっと良くできるでしょうか?
すべてのポインターをありがとう!
初心者
再:文字列のレベルでインクリメント(スクリプト)ここに私が使用する式があります
If( Row() == 1,
Summarize( groups = by( :Character_Column_Have ) )
);
Contains( groups, :Character_Column_Have );
他の方法もあります。
- Recodeを使用して新しい列を作成し、必要な新しい数値の値を変更します
- Character_Column_HaveをGroup列として使用するSummary Platformを使用して、Character_Column_Haveの値ごとに1行の新しいデータテーブルを作成します。 次に、Row()の式を持つ新しい列を作成します。 最後に、更新プラットフォームを使用して、サマリーテーブルを元のテーブルに結合します。
再:文字列のレベルでインクリメント(スクリプト)私はジムの答えが好きです。また、単純な式を使用することもできます。
If(
Row() == 1, 1,
:Have == Lag( :Have ), Lag( :Want ),
Lag( :Want ) + 1
)
または同等のスクリプト:
For Each Row( If( Row() == 1, 1, :Have == Lag( :Have ), Lag( :Want ), Lag( :Want ) + 1 ) );
再:文字列のレベルでインクリメント(スクリプト)私はあなたのアプローチをすべて試しましたが、それらを機能させることができないようです。
一つのアプローチは概念的に私を困惑させます。2つの入力列をアドレス指定しますが、入力に使用できるのは文字列のみです。
JMPデータセット「Dolphins」で1つのアプローチを示してください(以下の抜粋)。
トラベルモーニング6
フィードモーニング28
... 旅行の夜13
フィードイブニング56
ソーシャルイブニング10
「イルカ」レベルの朝、正午、午後、夕方には、1、2、3の増分が期待されます。4(ソート順の対象)
再:文字列のレベルでインクリメント(スクリプト)Numeric_Increment_Want列の式は次のとおりです
If( Row() == 1,
Summarize( myGroups = by( :Period ) )
);
Contains( myGroups, :Period );
古いコードの「グループ」への参照は、Groupsという名前の列を持つDolphinsデータテーブルと競合するため、以前のコードを変更する必要がありました。 そこで、変数名をmyGroupsに変更しました。

新しい列が追加されたデータ表が添付されます
再:文字列のレベルでインクリメント(スクリプト) New Column( "Increment",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Row() == 1,
Summarize( myGroups = by( :Period ) )
);
Contains( myGroups, :Period );
)
);
なぜそれが機能するのか説明できません。「グループ」も調整しました。おかしい。とにかく、私はそれをそのように解決し、それは魅力のように機能します。ジム、どうもありがとう。再び!