将数值变量分桶为因子
您的老朋友 Dan 给您发来一个包含 50 只 AAA 评级债券的列表 AAA_rank。每只债券还带有一个 1-100 的附加分数,表示他认为该债券的盈利能力(100 表示最赚钱)。您想进一步分析他的建议,但首先,如果能按某种方式把这些债券按排名分桶,会更便于分析。这样您就能从最不赚钱到最赚钱分组,更轻松地进行比较。
这是一个从数值向量创建因子的好例子。最简单的方法是使用 cut()。下面,将 Dan 的 1-100 排名分成 5 个等距的组。注意,因子水平中的 ( 表示该组不包含其旁边的数字,而 ] 表示包含该数字。
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 将数据分桶的区间。
本练习是课程的一部分
R 金融入门
练习说明
- 不用 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(___)