開始使用免費開始

將數值變數分箱成 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(___)
編輯並執行程式碼