Salut tout le monde,
Je travaille avec un ensemble de données Excel où plusieurs lignes (lots) sont fusionnées pour un seul ordre de travail et un seul rendement. Une fois dans JMP, les cellules de fusion se divisent et chaque ligne, à l'exception des colonnes de rendement et de rebut, est remplie avec les valeurs correctes pour chaque ordre de travail.
Je dois remplir les valeurs manquantes avec la valeur de rendement pour ce bon de travail. J'ai joint un exemple de tableau de données.
Je peux le faire en créant une nouvelle colonne et en utilisant une instruction conditionnelle avec décalage, mais j'aimerais le faire sans nouvelle colonne.
// 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)));Ma première pensée était d'utiliser une boucle for mais j'ai des problèmes. Le script ci-dessous s'exécute mais ne remplit aucune donnée à la place des valeurs manquantes. Quelqu'un pourrait-il suggérer une meilleure façon de faire cela?
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)
);
Merci beaucoup, cela fonctionne parfaitement.
Dans un script, à l'aide d'une boucle For(), vous devez spécifier la ligne à l'aide d'un indice.Voir ci-dessous
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]
)
);