関数を使用してデータクリーニングプロセスを高速化することを検討しています。示されている例では、その日の「.no」列の値が1の場合、am列とpm列で報告された値を削除しようとしています。
df1 = data.frame (identifier = c(1:4),
mon.no = c(1,NA,NA,NA),mon.am = c(2,1,NA,3),mon.pm = c(3,4,NA,5),
tues.no = c(NA,NA,1,NA),tues.am = c(2,3,1,4),tues.pm = c(3,3,2,3))
関数を使用してデータをクリーンアップする日を使用することを想定しています。
clean1 = function (day) {
df1$day.am[df1$day.no==1] = NA
df1$day.pm[df1$day.no==1] = NA
return (df1)}
df2 = clean1(mon)
ただし、これは次のエラーを返します。
Error in `$<-.data.frame`(`*tmp*`, "day.am", value = logical(0)) :
replacement has 0 rows, data has 4
これは、関数が完全な列名を予期していて、テキスト入力の周りのギャップを埋めることができないためだと思いますか?そのように関数を使うことは可能ですか?
これらのメモを読んだことで、データを整理された形式にし、データの再編成を含むソリューションに取り組んでいる方がよいと思います。ただし、データが元の形式であるときにこれを実行できると便利です。
ありがとう。