Hola a todos,
Estoy trabajando con un conjunto de datos de Excel en el que se combinan varias filas (lotes) para una sola orden de trabajo y un solo rendimiento. Una vez en JMP, las celdas de combinación se dividen y cada fila, pero las columnas de rendimiento y desecho se rellenan con los valores correctos para cada orden de trabajo.
Necesito rellenar los valores faltantes con el valor de rendimiento para esa orden de trabajo. He adjuntado una tabla de datos de ejemplo.
Puedo hacer esto creando una nueva columna y usando una declaración condicional con retraso, pero me gustaría hacerlo sin una nueva columna.
// 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)));Mi primer pensamiento fue usar un bucle for, pero estoy teniendo problemas. La siguiente secuencia de comandos se ejecuta pero no llena ningún dato en lugar de los valores faltantes. ¿Podría alguien sugerir una mejor manera de hacer esto?
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)
);
Muchas gracias, eso funciona perfectamente.
En una secuencia de comandos, utilizando un bucle For (), debe especificar la fila mediante un subíndice. Vea abajo
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]
)
);