順序付き因子を作成する
右側のプロットを見てみましょう。見た目は良いのですが、バーの順序に注目です。因子を作成するときに順序を指定しなかったため、R は水準をアルファベット順に並べて描画しています。ここまでで、クレジット格付けには本来の順序があると分かっていますよね。グラフにもその順序を反映させましょう。
おさらいとして、クレジット格付けの順序は、最もリスクが低いものから最もリスクが高いものへ次のようになります。
AAA, AA, A, BBB, BB, B, CCC, CC, C, D
因子に順序を付けるには、2つの方法があります。
因子を作成するときに ordered = TRUE を指定し、重複のない水準を低い順から高い順に並べて追加します。
credit_rating <- c("AAA", "AA", "A", "BBB", "AA", "BBB", "A")
credit_factor_ordered <- factor(credit_rating, ordered = TRUE,
levels = c("AAA", "AA", "A", "BBB"))
すでに順序なし因子の credit_factor がある場合は、ordered() 関数を使います。
ordered(credit_factor, levels = c("AAA", "AA", "A", "BBB"))
どちらの方法でも、結果は次のようになります。
credit_factor_ordered
[1] AAA AA A BBB AA BBB A
Levels: AAA < AA < A < BBB
以前はなかった < が表示されており、水準の順序が指定されたことが分かります。
この演習はコースの一部です
金融のためのR入門
演習の手順
- 文字ベクトル
credit_ratingはワークスペースに用意されています。 unique()をcredit_ratingに使って、ベクトル内のユニークな語だけを出力してください。これが水準になります。factor()を使って、credit_ratingの順序付き因子を作成し、credit_factor_orderedに保存してください。水準はリスクが低い順から高い順になるように並べましょう。credit_factor_orderedをプロットして、バーの新しい順序を確認してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Use unique() to find unique words
unique(___)
# Create an ordered factor
credit_factor_ordered <- factor(___, ordered = ___, levels = c(___))
# Plot credit_factor_ordered