大家好,
我正在处理一个 excel 数据集,其中为单个工作订单和单个产量合并了多行(批次)。 进入 JMP 后,合并单元格将拆分,并且除了产量和报废列之外的每一行都填充了每个工作订单的正确值。
我需要用该工单的产出值填充缺失值。 我附上了一个示例数据表。
我可以通过创建一个新列并使用带滞后的条件语句来做到这一点,但我想在没有新列的情况下做到这一点。
// example of populating missing values with new column
dt << new column("test", numeric, continuous, set each value(if( :WorkOrder == lag(:WorkOrder,1)& is missing(:yield),:yield= lag(:yield,1),:yield)));我的第一个想法是使用 for 循环,但我遇到了麻烦。 下面的脚本运行但不填充任何数据来代替缺失值。 有人可以建议一个更好的方法吗?
dt = current data table();
n=nrows(dt);
for(i=0,i<=n, i++,
if( :workorder == lag(:workorder,1)& is missing(:yield),:yield= lag(:yield,1),:yield)
);
在脚本中,使用 For() 循环时,您需要使用下标指定行。见下文
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 2, i <= N Rows( dt ), i++,
If( :workorder[i] == :workorder[i - 1] & Is Missing( :yield[i] ),
:yield[i] = :yield[i - 1]
)
);