按组枚举的索引你好,
我正在尝试设置按一组或一组行枚举的索引。我附上一张图片,试图更好地解释我要实现的目标。
如您在图片上看到的,我正在尝试使索引基于步骤组。这里的困难或我发现的困难是,每个组提到的每个步骤的实例数量可以变化,并且没有列出任何空白。

这就是我用来获取:Achieved_Index中显示的结果的方法,但是我真正想要的是:Expected_Index中的结果
dt = Data Table("sample");
dt << New Column( "Achieved_Index", Numeric( ) );
x = 1;
For Each Row( If( :StepName == "",
:Achieved_Index = 0,
If( Lag(:StepName, -1) != "" | :StepName == "STEP3",
:Achieved_Index = x,
x = x + 1
)
)
);最终目标是使该索引列正常工作。如果只有两个实例,则使用它来设置标志列以标识每个组的中途标记或最后一步。除了可能获取每个索引的每个步骤的计数,然后除以2而不是为我的Lag()函数使用该值之外,我还没有对此进行过多考虑。对此任何建议也将不胜感激,谢谢!
回复:按组枚举的索引下面的公式将为您提供所需的答案
If( Row() == 1, step = 0 );
If( :stepName != "" & Lag( :stepName ) == "" | Row() == 1,
step
++);
If( :stepName != "", step, 0 );
回复:按组枚举的索引txnelson,谢谢您的帮助。这帮助我到达了需要的地方。
这是执行我想要的代码:
For Each Row(
If( Row() == 1, step = 0);
If(Row() == 1 & :StepName != "", step = 1);
If( :StepName != "" & Lag( :StepName ) == "",
:Achieved_index = step++);
If( :StepName != "", :Achieved_index = step, :Achieved_index = 0 );
);
我必须进行几次编辑/添加,因为即使我将其称为索引,我也要从1开始。
我还必须添加一条附加的If语句,因为如果第一行具有:StepName ==“”,它将使计数失败。