按字符列级别递增(脚本)也许我又一次只见树木不见森林;我只想为字符列的每个不同级别应用一些数字增量。
相同的级别获得相同的增量,不同的级别获得不同的数字。
假设:数据按“Character_Column_Have”排序。 “Numeric_Increment_Want”应该从 1 开始。
Character_Column_Have Numeric_Increment_Want
AAA 1
AAA 1
美国广播公司 2
血脑屏障 3
感光元件 4
电子电气工程5
电子电气工程 5 ...
到目前为止,我取得的唯一结果是使用“col **bleep** rank”反复使我的 JMP 崩溃。
JMP 和我可以做得更好,对吧?
谢谢大家的指点!
菜鸟
回复:按字符列的级别递增(脚本) New Column( "Increment",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Row() == 1,
Summarize( myGroups = by( :Period ) )
);
Contains( myGroups, :Period );
)
);
我无法解释为什么它现在有效。 我还针对“群组”进行了调整。 很奇怪。 无论如何,我就这样解决了,而且效果很好。 吉姆,非常感谢你。 再次!
回复:按字符列的级别递增(脚本)这是 Numeric_Increment_Want 列的公式
If( Row() == 1,
Summarize( myGroups = by( :Period ) )
);
Contains( myGroups, :Period );
我不得不更改以前的代码,因为旧代码中对“Groups”的引用与具有名为 Groups 的列的 Dolphins 数据表冲突。所以我将变量名更改为 myGroups。

附上新增列的数据表
回复:按字符列的级别递增(脚本)我尝试了您所有的方法,但似乎无法使它们起作用。
一种方法在概念上让我感到困惑。 它处理两个输入列,而只有字符列可用于输入。
您能否在 JMP 数据集“Dolphins”上演示一种方法(摘录如下)?
旅行早安 6
喂早上 28
... 旅行晚 13
饲料晚上 56
社交晚会 10
对于早上、中午、下午、晚上的“海豚”级别,我希望分别增加 1、2、3。 4(以排序为准)
回复:按字符列的级别递增(脚本)我喜欢吉姆的回答。 您还可以使用一个简单的公式:
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 ) );
回复:按字符列的级别递增(脚本)这是我要使用的公式
If( Row() == 1,
Summarize( groups = by( :Character_Column_Have ) )
);
Contains( groups, :Character_Column_Have );
还有其他方法。
- 使用重新编码创建一个新列,更改为所需的新数值找到的值
- 使用将 Character_Column_Have 作为组列的摘要平台创建一个新数据表,每个 Character_Column_Have 值一行。然后创建一个具有 Row() 公式的新列。最后使用更新平台将汇总表与原始表连接起来。