因子水準
データセットを初めて扱うとき、特定の因子水準を持つ因子が含まれていることがよくあります。しかし、わかりやすさなどの理由から、レベルの名前を変更したい場合もあります。Rでは、levels() 関数を使ってこれを行えます。
levels(factor_vector) <- c("name1", "name2",...)
わかりやすい例として、アンケートで得られた生データを見てみましょう。アンケートの定番の質問に、回答者の性別があります。ここでは簡単にするため、"M" と "F" の2つのカテゴリのみが記録されているとします。(アンケートデータでは通常さらに多くのカテゴリが必要ですが、いずれの場合もカテゴリカルデータの保存には因子を使います。)
survey_vector <- c("M", "F", "F", "M", "M")
性別を "M" や "F" という略称で記録するのは、ペンと紙でデータを収集する場合には便利です。しかし、データを分析する際に混乱を招くことがあります。そのため、明確にするために因子水準を "Male" と "Female" から "M" と "F" に変更したいことがよくあります。
注意: レベルを割り当てる順番は重要です。levels(factor_survey_vector) と入力すると、[1] "F" "M" と出力されます。ベクトルの作成時に因子の水準(レベル)を指定しない場合、R は自動的にアルファベット順で割り当てます。"F" を "Female" に、"M" を "Male" に正しく対応させるには、この順番で c("Female", "Male") と水準レベルを設定する必要があります。
この演習はコースの一部です
R 入門
演習の手順
survey_vectorから因子ベクトルを作成するコードを確認しましょう。次の指示ではfactor_survey_vectorを使います。factor_survey_vectorの因子水準をc("Female", "Male")に変更しましょう。ベクトルの要素の順番に注意してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Code to build factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of factor_survey_vector
levels(factor_survey_vector) <-
factor_survey_vector