將數值變數分箱成 factor
你的老朋友 Dan 傳給你一份包含 50 檔 AAA 評等債券的清單,稱為 AAA_rank。每一檔債券還附上一個 1–100 的數字,代表他認為該債券的獲利程度(100 代表最有利可圖)。你想要進一步分析他的建議,但在此之前,若能先依排名把債券分箱會更方便。這能幫你把債券分成從最不賺錢到最賺錢的幾組,便於分析。
這是把數值向量建立成 factor 的絕佳例子。最簡單的方式是使用 cut()。下面把 Dan 的 1–100 排名分成 5 個等距的群組。注意,factor 層級中的 ( 表示「不包含」旁邊那個數字在該群組內,而 ] 表示「包含」那個數字在群組內。
head(AAA_rank)
[1] 31 48 100 53 85 73
AAA_factor <- cut(x = AAA_rank, breaks = c(0, 20, 40, 60, 80, 100))
head(AAA_factor)
[1] (20,40] (40,60] (80,100] (40,60] (80,100] (60,80]
Levels: (0,20] (20,40] (40,60] (60,80] (80,100]
在 cut() 函式中,使用 breaks = 可以讓你指定要把資料分箱成哪些群組!
本練習屬於課程
R for Finance 入門
練習說明
- 把 5 個分箱改成 4 個可以嗎?在
breaks =中使用從 0 到 100、每個元素間隔 25 的向量。將結果指定給AAA_factor。 - 這 4 個分箱名稱不太具描述性。使用
levels()依序將層級重新命名為"low"、"medium"、"high"、"very_high"。 - 列印重新命名後的
AAA_factor。 - 繪製
AAA_factor,把結果視覺化!
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create 4 buckets for AAA_rank using cut()
AAA_factor <- cut(x = ___, breaks = ___)
# Rename the levels
# Print AAA_factor
# Plot AAA_factor
plot(___)