いくつかの数値変数を含むデータ フレームがあります。関心のある数値を含む列の値を比較して行を並べ替える並べ替えアルゴリズムを作成しました。
値は数値形式の YYYYMMDD です。ただし、実際には NA である必要がある値として 0 (ゼロ) を持つエントリもあります。これは、たとえば 20001224 と 0 の間で比較が可能であることを意味しますが、0 は適用できない値であるため意味がありません。
strptime を使用して値を日付に変換し、日付以外を取り除くことができました。ただし、データ フレームの複数の列を NA 値に再コード化する方法を理解しようとして、ここに質問として投稿したいと思いました。
列ごとに移動し、すべての 0 (ゼロ) を NA に再コード化する簡単な方法 (適用関数の 1 つを使用) が必要です。
EnrollmentBegin EnrollmentBegin2 EnrollmentBegin3 EnrollmentEnd EnrollmentEnd2 EnrollmentEnd3
20040129 20130107 0 20060526 20140816 0
20050829 0 0 20070822 0 0
20000831 0 0 20020524 0 0
20080827 0 0 20090526 0 0
ここに私のデータの抜粋のdputがあります:
structure(list(EnrollmentBegin = c(20040129, 20050829, 20000831, 20080827), EnrollmentBegin2 = c(20130107, 0, 0, 0), EnrollmentBegin3 = c(0, 0, 0, 0), EnrollmentEnd = c(20060526, 20070822, 20020524, 20090526 ), EnrollmentEnd2 = c(20140816, 0, 0, 0), EnrollmentEnd3 = c(0, 0, 0, 0)), .Names = c("EnrollmentBegin", "EnrollmentBegin2", "EnrollmentBegin3", "EnrollmentEnd", "EnrollmentEnd2", "EnrollmentEnd3"), row.names = c("3", "5", "6", "7"), class = "data.frame")