欠落している場合、前の列からデータを追加しますこんにちは、
データセットで利用可能な最新の日付で列を作成しようとしています。したがって、この場合、訪問19から日付が欠落している場合、訪問18から日付を取得します。私ができること。しかし、訪問18の日付が欠落している場合、それをもう機能させることはできません。では、jmpを1つの列で開始し、日付があるまで戻るにはどうすればよいですか?
Brジュリー
再:欠落している場合、前の列からデータを追加します必要に応じて、If(isMissing(句を完全に破棄します。 最後に表示された日付列にすべての欠損値が含まれている限り、実際には何も変更されていません
再:欠落している場合、前の列からデータを追加しますわかりました-それは理にかなっています。ただし、スクリプトを実行しても、新しい列には値が追加されません。
すべきではない不足している 「文は列19を指していますか?それとも何か不足していますか?
再:欠落している場合、前の列からデータを追加しますi = 5での私のエラー。 私はそれでテストしていました...私はそれをi = 1に変更しました。
新しい列が必要な場合は、それを20番目の列として追加し、2番目のスクリプトを使用できます。
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column("Last Date Seen",format("yyyy-mm-dd",12));
For( i = 1, i <= N Rows( dt ), i++,
If( Is Missing( As Column( "Last Date Seen" )[i] ),
Column( "Last Date Seen" )[i] = Max( dt[i, 0] )
)
);再:欠落している場合、前の列からデータを追加しますしかし、新しい列を作成するのではなく、最後の列に最新の日付を入力するだけではいけませんか?
また、最初のecampleでは、なぜ「i = 5 "?
前もって感謝します
再:欠落している場合、前の列からデータを追加しますこれを行う2つの方法があります
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Cols( dt ), i++,
missingRows = dt << get rows where( Is Missing( As Column( i ) ) );
If( N Rows( missingRows ) > 0,
For( k = 1, k <= N Rows( missingRows ), k++,
Column( i )[missingRows[k]] = Column( i - 1 )[missingRows[k]]
)
);
);
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Rows( dt ), i++,
If( Is Missing( As Column( 19 )[i] ),
Column( 19 )[i] = Max( dt[i, 0] )
)
);
再:欠落している場合、前の列からデータを追加します最初の行から反復を開始する場合は、テーブルを反復するときに欠落している日付を前の日付で埋めることができるはずです。それは私には十分簡単に思えますが、重要な点を見落としているかもしれません。