これは私が最初にRで仕事を始めたときのことを思い出し、私は歩き、データ科学者にこれと全く同じ質問をしました。
彼らは私にこのような状況で一般的に好ましい別のアプローチを共有しました。私は何度も振り返り、早い段階でそれを学んでいることに感謝しています。
データベースの正規化アプローチ(そこに誰かがより良い名前を付け加えることができない限り)は、コード値を別のデータフレームにマッピングする必要があります。次に、マッピングされた値のコレクションを取り、エンコードするデータフレームにjoin
を取り込みます。
これは操作、およびデータフレーム値/データを保持する責任を担当し、より厳密にコードを保つことができます。これは作業の多くをスピードアップするだけでなく、ハードコード化されたルックアップテーブルで手作業でコードを保存することもできますが、長期的には、デバッグや修正や再開発を行っているときにはずっと簡単になります。あなた自身が特に長いコードマップ(またはを構築するために迅速かつ簡単な方法を必要と判明した場合は、それらを共有
# your code mapping
df_map <- tribble(~subject, ~subj_cd,
"chemistry", 1,
"biology", 1,
"physics", 0)
# a dummy raw dataframe that you might be wanting to encode
df_raw <- tibble(stud_id = 2678:2877,
subject = sample(c("chemistry",
"biology",
"physics",
"astronomy"), 200, replace = TRUE))
# encoding the data
df_coded <-
df_raw %>%
left_join(df_map)
df_code
> df_coded
# A tibble: 200 x 3
stud_id subject subj_cd
<int> <chr> <dbl>
1 2678 physics 2
2 2679 physics 2
3 2680 biology 1
4 2681 astronomy NA
5 2682 chemistry 1
6 2683 chemistry 1
7 2684 physics 2
8 2685 chemistry 1
9 2686 chemistry 1
10 2687 astronomy NA
# ... with 190 more rows
:
正規化されたデータ管理のアプローチは、次のようになります他の人と一緒に)、あなたはおそらくジェニーブライアンのgooglesheets
パッケージ(彼女はチームのメンバーtidyverse
のメンバーです)A本当にhelpful vignette for it can be found here