创建有序因子
请查看右侧生成的图。图看起来不错,但请注意柱状的顺序!在创建因子时并未指定顺序,因此 R 在绘图时按字母顺序排列了各水平。现在,您已经知道信用评级是有顺序的,您的图也应该体现出来!
提醒一下,从「最低风险」到「最高风险」的信用评级顺序是:
AAA, AA, A, BBB, BB, B, CCC, CC, C, D
要为因子设定顺序,有两种方法。
在创建因子时,指定 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,仅打印该字符向量中的唯一词项。它们将作为您的水平(levels)。 - 使用
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