こんにちは、みんな、
私は、複数の行(バッチ)が単一の作業オーダーと単一の歩留まりのためにマージされる、優れたデータセットを使用しています。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]
)
);